【发布时间】:2012-04-07 17:12:26
【问题描述】:
正如您在第一张图片中看到的那样,我在我的应用程序中使用 UIWebview。 但是当我将第二个手柄拖到下一个段落时,选择变成了一个矩形框,我只能选择整个段落,我怎样才能让它像第一张图片一样?
【问题讨论】:
-
也许您可以尝试以某种方式记住初始位置并强制替换自动绑定到段落的辅助更改。
标签: objective-c ios uiwebview textselection
正如您在第一张图片中看到的那样,我在我的应用程序中使用 UIWebview。 但是当我将第二个手柄拖到下一个段落时,选择变成了一个矩形框,我只能选择整个段落,我怎样才能让它像第一张图片一样?
【问题讨论】:
标签: objective-c ios uiwebview textselection
通过阅读Using Copy, Cut and Paste Operations,您可以看到iOS 已经为您实现了UIWebView、UITextView 和UITextField 的UI 选择,因此您所看到的只是选择在这些UI 对象中的工作方式。
(因此:只要用户在段落的范围内,那么用户将能够选择段落中的一部分文本,正如您在第一个视图中所展示的那样;如果用户的手指超出了段落的边缘,显示所选区域的底层 UI 代码将尝试选择它可以选择的最小项目子集,整个段落在此级别被视为一个原子单元。)
鉴于上面引用的文档仅描述了如何在从菜单调用时调用各种 剪切/复制/粘贴/选择 操作(对UIMenuController 中出现的内容有一些控制)菜单,以及对UIPasteboard 中的剪切/复制选择的一些控制),似乎没有一种方便的方法来指导 UI 如何响应控制选择边缘的用户。甚至扩展UIWebView 也可能使您能够捕获必要的触摸事件,但您将无法通过UIWebView 的文档化API 引导生成的选择图。
因此,在不使用非公共 API 的情况下,很难想象如何对选择跨段落的文本进行更精确的细粒度控制,除非您竭尽全力实现自己的类来捕获控制选择所需的触摸事件,然后处理事件以围绕您喜欢的边缘绘制选择。换句话说,你不得不重新发明UIWebView 以及它所做的一切,除了你用于跨越文本段落的选择的特殊代码。
对不起。
【讨论】: