【问题标题】:Getting the bounding selection rectangle of UIWebView获取 UIWebView 的边界选择矩形
【发布时间】:2011-04-14 12:30:21
【问题描述】:

我们如何获得UIWebView 中选择的屏幕位置?也就是说,每当用户选择一些文本并且系统显示选择框时,我想知道以屏幕(或视图)为单位的矩形的边界坐标是多少。

我想显示一个UIPopoverController 的原因,它有一个指向选择矩形的箭头。

我尝试通过 JavaScript 调用 window.getSelection() 获取选择,但似乎生成的 SelectionRange JavaScript 对象都无法指向确切的屏幕(或文档)相对点(像素)坐标因为它们不是原子 DOM 节点。

谢谢。

【问题讨论】:

    标签: javascript cocoa-touch ipad uiwebview


    【解决方案1】:

    您无法从UIWebView 中获取突出显示的文本范围的物理位置。

    我想这样做的原因 显示一个 UIPopoverController 具有 指向选择的箭头 矩形。

    这不是UIPopoverController 的用途。这是非标准的,因此它会使用户感到困惑,并可能让您在审批过程中被 Apple 拒绝。

    【讨论】:

    • 我想您的应用程序因此被拒绝了?请注意,这是桌面 Safari 中的标准 UI(选择一个单词并按 Cmd+Ctrl+D,您将获得所选单词的字典定义——我想在 iPad 上获得相同的效果)。
    • 我的应用程序并没有因此被拒绝——但我敢打赌,将它简单地用作“指向选择矩形的箭头”会导致拒绝。 UIPopoverController 应该包含与其指向的控件相关的内容。至于“桌面 Safari”做些什么,这与 Apple 可以为 iOS 强加什么无关。
    • 但它确实指向相关内容——字典指向正在查找的单词。
    • 好吧,如果您的弹出框有实际内容,那么这可能不是问题。但是,不会改变最初的问题,即获取选择范围的屏幕坐标,而您无法从基础类中获取。
    【解决方案2】:

    在这里查看我的答案:How to get coordinates (CGRect) for the selected text in UIWebView?

    基本上,您在选定的文本范围上调用 getBoundingClientRect()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多