uiwebview 中的 uimenucontroller 带有自定义菜单项,没有更多菜单

Posted

技术标签:

【中文标题】uiwebview 中的 uimenucontroller 带有自定义菜单项,没有更多菜单【英文标题】:uimenucontroller in uiwebview with custom menu items without MORE menu 【发布时间】:2010-11-30 06:07:15 【问题描述】:

在我的 iPad 应用程序中,有一个 UIWebview 显示文本内容。当我点击按住并选择一个文本时,应该会弹出一个带有 2 个自定义菜单的菜单。

说,|菜单1 |菜单2 |

但似乎复制菜单也会伴随,我无法禁用。有没有可能禁用它?我在论坛上试了试,没有找到解决办法。

所以可以将 COPY 菜单与其他 2. 一起保留。现在应该看起来像

|复制 |菜单1 |菜单2 |

但不幸的是,我将其显示为更多菜单,如下所示:

|复制 |更多... |

单击“更多...”菜单将显示另外 2 个菜单。

但我需要在第一次尝试时显示所有这 2 个项目。要么只有 2 个菜单,要么至少与复制菜单一起使用。

|复制 |菜单1 |菜单2 |

|菜单1 |菜单2 |

请给我一些解决方案....尝试了很多方法..但没有任何结果... 请帮帮我...

谢谢, 布赖恩

【问题讨论】:

【参考方案1】:

似乎没有办法在不替换 UIMenuController 的情况下做到这一点。一种选择是处理您自己的 UILongPressGestureRecognizer(请参阅How to remove th COPY UIMenuItem in UIMenuController)。我已经看到您覆盖 canPerformAction 的建议,但这不起作用。有趣的是,“复制:”操作从未被调用,尽管其他所有内容(剪切:、选择:等)似乎都被调用了。

- (BOOL) canPerformAction:(SEL)action withSender:(id)sender

    if (action == @selector(defineSelection:))
    
        return YES;
    
    else if (action == @selector(translateSelection:))
    
        return YES; 
    
    else if (action == @selector(copy:))
    
        return NO;
    

    return [super canPerformAction:action withSender:sender];

`

【讨论】:

以上是关于uiwebview 中的 uimenucontroller 带有自定义菜单项,没有更多菜单的主要内容,如果未能解决你的问题,请参考以下文章

嵌入在 UIScrollview 中的 UIWebview 中的 Javascript 触摸事件

mailto:UIWebView 中的链接 - 不起作用

嵌入在 UIWebView 中的 MPMoviePlayerController 中的视频流

UIWebView 中的 Cookie

UIWebView ios8中的透明背景

如何替换 UIWebView 中的 SwipeGestureRecognizer 操作