iBooks 是如何做到这一点的?

2024-01-29

我目前正在 uiwebview 中显示文本。但是,我想允许用户选择文本并使用所选文本执行某些操作(谷歌搜索)。苹果公司已经在 iBooks 上做了类似的事情。当您单击某个单词时,您可以选择在字典中查找该单词。我怎样才能用 Webview 做同样的事情?

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


从 iOS 3.2 开始您可以使用UI菜单控制器 http://developer.apple.com/iphone/library/documentation/iPhone/Reference/UIMenuController_Class/UIMenuController.html添加额外的UI菜单项 http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIMenuItem_Class/Reference/MenuItem.html到在 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
}

苹果公司描述了它是如何工作的添加自定义编辑菜单项 http://developer.apple.com/iPhone/library/documentation/General/Conceptual/SystemIntegrationGuide_iPhoneOS/AddingCustomEditMenuItems/AddingCustomEditMenuItems.html器件功能编程指南部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iBooks 是如何做到这一点的? 的相关文章

  • CGContextSelectFont 等效项

    在 iOS 7 CGContext SelectFont 中已弃用 已弃用的消息说我必须使用 Core Text 但我不知道哪一个与这段代码完全相同 CGContextSelectFont context Helvetica kBarLab
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • UITextView:内存使用量巨大

    我在 UITextView 中遇到了内存使用过多的问题 我正在将 50Kb ascii 文本文件加载到 NSString 中 并将其分配给应用程序中空 UITextView 组件的 text 属性 这立即使我的内存占用量增加了 100Mb
  • 将捕获的图像精确裁剪为 AVCaptureVideoPreviewLayer 中的外观

    我有一个使用 AV Foundation 的照片应用程序 我使用 AVCaptureVideoPreviewLayer 设置了一个预览层 它占据了屏幕的上半部分 因此 当用户尝试拍照时 他们只能看到屏幕上半部分看到的内容 这很好用 但是当用
  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • let/var 如何解决可变性? [复制]

    这个问题在这里已经有答案了 我没有任何问题 我只是想对有关可变性的问题进行一些澄清 在 Objective C 中我们会使用例如NSMutableArray得到一个可变数组和NSArray得到一个不可变的 我对两者的内部运作了解不多 但据我
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • 背景大小:封面在视网膜显示屏上看起来像素化

    可以看到我正在开发的网站here http ourcityourstory com dev 如果你查看 iPad 3 或 iPhone 4 上的 关于 或 联系 部分 背景看起来全都是疯狂的像素化 我有background size set
  • UISlider不会自动重绘

    我的应用程序上有一个 UISlider 有时我不仅需要更新它的值 还需要更新它的minimumValue 值已更改 但如果我调用 setValue 方法或为滑块分配新值 它会具有新值 但滑块不会将自身重新绘制到该新值应有的位置 我怎样才能重
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • 默认情况下在 MPMovies PlayerViewController 中显示字幕

    有什么方法可以在默认情况下由 MPMovies PlayerViewController 加载的电影上显示字幕吗 这部电影在视频中嵌入了字幕 谢谢你 不幸的是 这个功能在MPMoviePlayer播放类 这显然相当烦人 您应该考虑向 App
  • 命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/atool 失败,退出代码 255

    它发生在新的 Xcode7 beta 中 CompileAssetCatalog Users admin Library Developer Xcode DerivedData InstaAd ddgdnbxlpxipirebpndfmgr
  • 检查 Objective-C 块类型?

    这主要是出于好奇 我不太确定它的实际用途是什么 但就这样吧 由于块也是 Objective C 对象 是否可以检查它们的类型 也就是说 它是否响应isKindOfClass 消息以及如何使用该消息来处理块 我天真的以为事情大概是这样的 vo
  • 如何在 iOS 上固定证书的公钥

    在提高我们正在开发的 iOS 应用程序的安全性时 我们发现需要对服务器的 SSL 证书 全部或部分 进行 PIN 操作以防止中间人攻击 尽管有多种方法可以做到这一点 但当您搜索此内容时 我只找到了固定整个证书的示例 这种做法会带来一个问题
  • 如果我在 iTunes Connect 中点击“拒绝二进制文件”来提交更新的二进制文件,我会失去排队的位置吗?

    我已通过 iTunes Connect 向 App Store 提交了一个应用程序 状态为 审核中 我不知道这是否意味着他们真的开始关注它 我怀疑这只是意味着它已被放入审阅者队列中 在它发布之前我想添加一个调整 但是 如果这意味着点击 拒绝

随机推荐

  • JavaScript - 通过基于特殊顺序的属性对对象数组进行排序

    我有一个具有多个属性的对象数组 给定以下数组 var people name allen age 33 color green name jon age 23 color blonde name silver age 54 color ye
  • 如何从分页 ui 网格中获取过滤数据

    我想在启用分页功能时从用户界面网格中获取过滤后的数据 一般情况下我使用 scope gridApi core on filterChanged scope function if scope gridApi grid columns 1 f
  • 实例变量继承

    有人可以解释一个类如何访问其超类的实例变量以及这为什么不是继承吗 我正在谈论 Ruby 编程语言 和示例 class Point def initialize x y Initialize method x y x y Sets initi
  • 在分发包中使用 virtualenv 部署 Django?

    我必须将 Django 应用程序部署到 SuSE Linux Enterprise 11 系统上 公司规则规定我只需要使用 RPM 进行部署 虽然我可以使用 setup py bdist rpm对于每个依赖项 这并不是真正明智的 因为 RP
  • MongoDB php $in 和 $regex

    我正在尝试结合 regex 和 in 来进行简单的搜索 例如我有一个这样的用户查询 user query for focus red 在我的每个文档的 mongodb 集合中 我都有一个关键字字段 我想获取字段关键字所在的文档 keywor
  • 二进制序列化 - 在 scala 2.10 上替换 Marshal

    由于 scala util Marshal 已弃用 如何将旧代码迁移到 scala 2 10 object Serilaizer def objectToBytes T foo T implicit expected ClassManife
  • 模块上的 __getattr__

    如何实现相当于 getattr 在一个类上 在一个模块上 Example 当调用模块的静态定义属性中不存在的函数时 我希望在该模块中创建类的实例 并使用与模块上的属性查找失败相同的名称调用其方法 class A object def sal
  • 1 台设备上的多个推送通知 - iPhone

    如何在一台设备上处理多个推送通知 例如 用户收到一条通知 称您有 1 条来自我的应用的新消息 在他检查该消息之前 另一条消息进来 所以现在他有 2 条消息 好吧 我不希望 2 条消息堆叠在通知栏中 我想要 1 条通知 表示有 2 条消息正在
  • HighCharts 系列 Z 指数

    有没有办法在不颠倒系列顺序的情况下将系列置于 Highcharts 的前面 在我的代码中 我使用了 graf 1 highcharts chart zoomType xy Highcharts 有一个zIndex http api high
  • 如何使用同一个记录器将不同级别的日志记录到控制台+日志文件?

    我有一个 log4j 记录器 当前将日志写入控制台和文件 工作正常 稍后我想将其配置为将 INFO ERROR 记录到日志文件中 但仅在控制台上显示 ERROR 为了实现这个目标我需要改变什么 log4j rootLogger INFO c
  • 关于使用 Java Swing 循环动态加载图像的问题

    public String imagesArray Images firstImage Images secondImage String imagesPath testproject images for int i 0 i
  • 如何查找哪些文件自提交后没有更改?

    在 git 中 如何找出目录中的哪些文件自某个提交以来没有更改 IMO 生成列表的更简单方法是使用以下命令链 git ls files full name grep v git diff name only
  • PHP 删除特定网站的链接但保留文本

    例如 a href http msdn microsoft com art029nr remove links to here but keep text a but a href http herpyderp com leave all
  • 如何终止 PHP 会话?

    这个一般性的话题之前已经出现过 here https stackoverflow com questions 252907 why does session start cause a timeout when one script cal
  • 如何设置 DataGridViewTextBoxColumn 的密码属性

    我用过DataGridView实现用户名密码 UI 密码显示在DataGridViewTextBoxColumn类型列 我如何使用现有的代码DataGridViewTextBoxColumn并为文本实现密码属性 处理EditingContr
  • 每次本地文件更改时使用 Flask SocketIO 更新网页

    每次我的本地文件 文件名更改时 我都需要更新我的网页 在不使用套接字的情况下 我只需每 1 秒刷新一次页面即可完成 我是通过读取文件名的内容并将其发送到我的网页模板来完成此操作的 但我需要使用套接字并使该过程异步 以便不使用自动刷新 我使用
  • 文档就绪时触发弹出窗口或 div id

    我需要帮助在页面加载时触发弹出窗口 目前 当我单击 你好 链接时 弹出窗口将打开 预期结果 弹出窗口应该打开 无需单击超链接或弹出窗口文件准备好 HTML a class button2 href popup1 hello a div cl
  • 如何增加R中max.print的限制

    我正在使用GraphR 中的包 用于 5461 个项目的 maxclique 分析 我得到的最终输出项非常长 因此我收到以下警告 reached getOption max print 省略 475569 行 有人可以向我提供有关如何增加限
  • 渴望加载关联但限制回报

    这似乎是一个简单的查询 但我就是无法确定 基本上 它可以归结为具有帖子的类别这一古老的概念 预期的关联已就位 一个类别有多个帖子 而一个帖子属于一个类别 我想检索所有类别及其帖子 但将帖子数量限制为 10 个 有任何想法吗 这不是您可以使用
  • iBooks 是如何做到这一点的?

    我目前正在 uiwebview 中显示文本 但是 我想允许用户选择文本并使用所选文本执行某些操作 谷歌搜索 苹果公司已经在 iBooks 上做了类似的事情 当您单击某个单词时 您可以选择在字典中查找该单词 我怎样才能用 Webview 做同