处理“复制”& “定义”弹出菜单项

时间:2012-03-28 20:04:14

标签: ios5 uiwebview uimenucontroller

尝试使用UIWebView中选择的文本进行一些操作。弹出2个按钮:

复制和定义

enter image description here

在很高的水平上,我该怎么做?

1)抓取所选文字的值

2)添加另一个菜单项

由于

2 个答案:

答案 0 :(得分:2)

本教程详细解答了您的问题:)

http://ios-blog.co.uk/category/tutorials/rich-text-editing-a-simple-start-part-1/

具体来说,要添加菜单项,请执行以下第3部分中的操作。将以下内容放在根视图控制器的实现文件中:

UIMenuItem *highlightMenuItem = [[UIMenuItem alloc] initWithTitle:@"Highlight"  action:@selector(highlight)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:highlightMenuItem]];

使用突出显示方法如下:

- (void)highlight {
    NSString *currentColor = [webView stringByEvaluatingJavaScriptFromString:@"document.queryCommandValue('backColor')"];
    if ([currentColor isEqualToString:@"rgb(255, 255, 0)"]) {
        [webView stringByEvaluatingJavaScriptFromString:@"document.execCommand('backColor', false, 'white')"];
    } else {
        [webView stringByEvaluatingJavaScriptFromString:@"document.execCommand('backColor', false, 'yellow')"];
    }
}

答案 1 :(得分:1)

UIMenuController单例是带有按钮的黑色弹出窗口,文档中提供了有关如何使用它的详细信息(手动呈现,添加新项目,响应操作等)。

至于获取所选文字,我发现您在UIWebView中使用了可编辑的div,这意味着您必须通过JavaScript回复编辑操作。