Вы будете иметь, чтобы сделать некоторые угон. Я даже не знаю, возможно ли это. Похоже, что он, вероятно, отвечает на событие жестов под названием 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];
Если не на том, что один, то это, вероятно, на том, что находится на вершине самой, что и я подозреваю. Это недокументированный тип View, но если вы рассматриваете его как 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
Я не могу ничего обещать, но это должно войти имя КАЖДОЙ метод, который вызывается по вашему мнению, ,
Запустите приложение и выполните копию, вставьте, выберите, выберите все методы. В вашем журнале должно отображаться, какие методы вызываются при нажатии кнопок. Он может показывать несколько способов, когда вы нажимаете кнопку, вы, вероятно, просто хотите первыми.
Теперь, когда вы создаете элемент меню, вы знаете, какой селектор ему назначен.
Это все догадка. Надеюсь, поможет.
Я считаю, что это можно сделать в canPerformAction. Но я действительно не знаю, как удалить пункт меню COPY. – Zaldy
привет, может указать, как удалить другие пункты меню в UIMenuController? Я хочу удалить стрелку. –
@ Risma. Вам удалась удалить элемент стрелки и поместить все доступные меню в основной кадр? –