在UIWebView中隐藏sharedmenucontroller中的额外项目

时间:2014-01-24 10:13:00

标签: ios objective-c uiwebview

我试图在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;
}

以下是我看到的内容:

enter image description here

如何删除这些默认操作?

1 个答案:

答案 0 :(得分:0)

好的,我想是想通了。

我有另一个

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    return NO;
}

在我的视图控制器中,在我删除它后,它开始正常工作,虽然仍然不清楚为什么这是一个问题,因为这个方法无论如何都返回NO。