显示UIMenuController时获取所选文本

时间:2011-01-19 13:23:56

标签: iphone uiwebview uimenucontroller

当用户在UITextView或UIWebView中选择一些文本时,会显示UIMenuController。有没有办法以程序方式访问这个选定的文本?

我需要它,因为我想将自定义项添加到UIMenuController:'搜索'选项,用于搜索数据库中的选定文本。

是否可以不使用“复制”项目将文本复制到粘贴板,然后下次从UIPasteBoard获取? - 我对这种解决方法不感兴趣。

3 个答案:

答案 0 :(得分:5)

我所做的是将此方法添加到UIWebView的类别:

- (NSString *)selectedText {
    return [self stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
}

之后,我可以使用[webView selectedText]来访问当前选择。

答案 1 :(得分:1)

您是否看过Apple的文档。您可以使用提供的MenuItems属性来创建自定义UIMenuController。看看下面的图片

alt text

并关注this

链接了解详情。

您还可以查看Apple提供的示例代码,以了解该功能。

http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

在此示例代码中,他们在UIMenuController中显示“Email”。

所以继续编码......一切顺利......

干杯

答案 2 :(得分:1)

要从UIWebView中显示的PDF中获取文本,这将起作用

 -(void)copiedString{

    [[UIApplication sharedApplication] sendAction:@selector(copy:) to:nil from:self forEvent:nil];
    NSString *copiedString =  [UIPasteboard generalPasteboard].string;
    NSLog(@"Copied String: %@",copiedString);
}