iOS 7 - UIWebView 扩展菜单

Posted

技术标签:

【中文标题】iOS 7 - UIWebView 扩展菜单【英文标题】:iOS 7 - UIWebView extended menu 【发布时间】:2014-02-17 18:55:32 【问题描述】:

我想为选择某些文本时出现的菜单添加额外的菜单项。

我已将以下代码添加到viewDidLoad

NSMutableArray *extraItems = [[NSMutableArray alloc] init];
UIMenuItem *boldItem = [[UIMenuItem alloc] initWithTitle:@"Bold"
                                                      action:@selector(bold:)];
[extraItems addObject:boldItem];

[UIMenuController sharedMenuController].menuItems = extraItems;

我还用这些方法覆盖了我的自定义 UIWebView:

- (void)bold:(id)sender 



- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
    if (action == @selector(bold:))
        return YES;
    return [super canPerformAction:action
                        withSender:sender];

所以有时当我突出显示文本时菜单会安抚,但有时不会。不知道是什么问题。

【问题讨论】:

【参考方案1】:

您的数组“extraItems”应该是一个 NSArray,而不是 NSMutableArray,因此您添加到 viewDidLoad 的前三行应该替换为:

UIMenuItem* extraItem = [[UIMenuItem alloc] initWithTitle:@"Bold" action:@selector(bold:)]; NSArray* extraItems = [NSArray arrayWithObject:extraItem];

然后像你一样将这个版本的 extraItems 数组添加到 sharedMenuController 中。

【讨论】:

以上是关于iOS 7 - UIWebView 扩展菜单的主要内容,如果未能解决你的问题,请参考以下文章

使用 UIWebView+AFNetworking 时链接如下

iOS下JS与OC互相调用--UIWebView 拦截URL

滚动到 UIWebView 上的文本 [关闭]

iOS 11 UIWebView 下拉菜单在 iPad 上完全损坏 - UIPopoverController

iOS 让 WKWebView 支持 NSURLProtocol

iOS:WebKit内核框架的应用与解析