【问题标题】:How does iBooks do this?iBooks 如何做到这一点?
【发布时间】:2011-03-12 22:45:34
【问题描述】:
我目前正在 uiwebview 中显示文本。但是,我想允许用户选择文本并使用所选文本执行一些操作(google it)。苹果已经用 iBooks 完成了这种事情。当您单击一个单词时,您可以选择在字典中查找该单词。我怎样才能用 Webview 做同样的事情?
UIMenuController 似乎是我需要看的。但我找不到任何有关如何执行此操作的示例代码。我是 iPhone 开发新手,请帮忙。
【问题讨论】:
标签:
objective-c
iphone
uiwebview
ios4
ibooks
【解决方案1】:
从 iOS 3.2 开始,您可以使用 UIMenuController 将额外的 UIMenuItems 添加到在 UIWebView 中选择文本时出现的系统菜单中。这是一个简单的例子:
- (void)viewDidLoad {
[super viewDidLoad];
UIMenuItem *defineItem = [[[UIMenuItem alloc] initWithTitle:@"Define" action:@selector(defineSelection:)] autorelease];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:defineItem]];
}
- (void)defineSelection:(id)sender {
NSString *selection = [webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
// Do something with the selection
}
Apple 在设备功能编程指南的Adding Custom Edit Menu Items 部分中描述了其工作原理。