iBooks如何做到这一点?

时间:2010-07-07 17:10:59

标签: objective-c iphone uiwebview ios4 ibooks

我目前正在uiwebview中显示文字。但是,我想允许用户选择文本并使用所选文本执行某些操作(google it)。 Apple已经使用iBooks完成了这类工作。单击单词时,您可以选择在字典中查找单词。如何使用Webview做同样的事情?

UIMenuController似乎是我需要关注的。但我找不到任何关于如何执行此操作的示例代码。我是iPhone新手,请帮忙。

2 个答案:

答案 0 :(得分:8)

从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部分介绍了它的工作原理。

答案 1 :(得分:1)

来自开发人员的{p> This recent blog post似乎暗示至少在iPad iOS分支中,某些iBooks功能基于私有API。