Тебе придется угнать какой-нибудь самолет. Я даже не знаю, возможно ли это. Похоже, он, вероятно, реагирует на событие жеста под названием UILongPressGestureRecognizer.
Вам нужно узнать, к какому виду добавлен жест. что-то вроде этого.
NSArray *gestures = myWebView.gestureRecognizers;
for(int i=0;i<[gestures count];i++){
UIGestureRecognizer g = [gestures objectAtIndex:i];
if([g isKindOfClass:UILongPressGestureRecognizer.Class]){
[myWebView removeGestureRecognizer:g];
break;
}
}
но я не думаю, что этот жест находится непосредственно в UIWebview. Он находится в одном из его подвидов.
Так что это может быть в этом подвиде
UIScrollView *sview = [[mywebview subviews] objectAtIndex:0];
Если не на этом, то, вероятно, он находится на вершине обзора, что я подозреваю. Это недокументированный тип представления, но если рассматривать его как UIView для методов, которые мы вызываем, он предположительно безопасен. Кроме того, поскольку вы рассматриваете его как UIView, насколько я понимаю, это не противоречит правилам.
UIScrollView *sview = [[mywebview subviews] objectAtIndex:0];
UIView *realWebView = [[sview subviews] objectAtIndex:10];
Причина, по которой я не написал фрагмент (который не был протестирован), чтобы попытаться удалить жест из всех представлений, заключается в том, что важно знать, из какого представления вы его удаляете.
После его удаления вам нужно написать свой собственный UILongPressGestureRecognizer, а затем добавить новый в соответствующее представление (представление, из которого он был удален).
Вы потеряли все свои функции выбора копирования и т. Д., Но теперь вы можете реализовать свои собственные.
Если вам нужны некоторые из старых функций, я думаю, что знаю, как их вернуть, но я не могу обещать, что это разрешено или безопасно.
Перед тем, как удалить жест, вам нужно переопределить метод для UIView. Вы должны иметь возможность сделать это в своем текущем файле рабочего класса (вверху файла)
@implementation UIView (extended)
-(BOOL) respondsToSelector:(SEL)aSelector {
printf("SELECTOR: %s\n",
[NSStringFromSelector(aSelector) UTF8String]);
return [super respondsToSelector:aSelector];
}
@end
Я не могу ничего обещать, но это должно регистрировать имя КАЖДОГО метода, который вызывается в вашем представлении.
Запустите приложение и выполните копирование, вставку, выделение, выделение всех методов. Ваш журнал должен показывать, какие методы вызываются при нажатии кнопок. Когда вы нажимаете кнопку, он может отображать несколько методов, возможно, вам просто нужен первый.
Теперь, когда вы создаете menuItem, вы знаете, какой селектор ему назначить.
Это всего лишь предположение. Надеюсь, это поможет.
person
maxpower
schedule
20.07.2010