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

Posted

技术标签:

【中文标题】在 UIWebView 中隐藏 sharedmenucontroller 中的额外项目【英文标题】:Hide extra items from sharedmenucontroller in UIWebView 【发布时间】:2014-01-24 10:13:00 【问题描述】:

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

这是我看到的:

任何想法如何删除这些默认操作?

【问题讨论】:

【参考方案1】:

好的,我想明白了。

我还有一个

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

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

【讨论】:

以上是关于在 UIWebView 中隐藏 sharedmenucontroller 中的额外项目的主要内容,如果未能解决你的问题,请参考以下文章

Swift:在 UIWebview Scroll 上隐藏 UIStackView

Uiwebview 用 Swift 隐藏/显示 UInavigationbar

全屏UIWebView隐藏状态栏

UIWebView 被键盘隐藏

UIWebView交互隐藏uitoolbar

显示谷歌地图时隐藏 UiWebview 的地址栏