【问题标题】: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 部分中描述了其工作原理。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-19
        相关资源
        最近更新 更多