我试图在UIWebView中显示UIMenuController,它显示正确,但显示默认项目。我尝试通过禁止在canPerformAction中执行操作来删除它,但它仍然不起作用,尽管这个方法是由UIMenuController调用的
这是MyWebView,它是UIWebView的子类
@implementation MyWebView
- (void) displayMenu: (NSString *) word atX: (int) x atY: (int) y {
[self becomeFirstResponder];
UIMenuController *menuCont = [UIMenuController sharedMenuController];
CGRect selectionRect = CGRectMake(x, y, 0, 0);
[menuCont setTargetRect:selectionRect inView:self];
menuCont.arrowDirection = UIMenuControllerArrowUp;
menuCont.menuItems = [[NSArray alloc] init];
[menuCont setMenuVisible:YES animated:YES];
}
- (BOOL)canBecomeFirstResponder { return YES; }
我通过从canPerformAction返回NO来禁用所有操作,但仍显示它们。
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSLog(@" Can perform action? %@ %s", sender, sel_getName(action));
return NO;
}
以下是我看到的内容:
如何删除这些默认操作?
答案 0 :(得分:0)
好的,我想是想通了。
我有另一个
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
return NO;
}
在我的视图控制器中,在我删除它后,它开始正常工作,虽然仍然不清楚为什么这是一个问题,因为这个方法无论如何都返回NO。