我正在使用 UITextView 要容纳静态内容(中文,这意味着字符都是固定宽度)。我想让用户点击文本中的字符,并为该角色提供字典信息。我知道围绕缺乏复制和粘贴以及所有这些问题的所有问题,但是我希望可以在不等待iPhone 3.0固件的情况下进行此操作。

起初,我考虑过 UITextViews selectedIndex 财产。不幸的是,当 UITextView 不可编辑,以下代码 UITextView的总是返回整个文本块的长度:

NSRange touchPoint = self.selectedRange;
NSLog(@"Selection: %d", touchPoint.location);

我想这是有道理的 UITextView 无法选择一个插入点,但这对我没有任何帮助。 :)

另一种方法是使用中文文本是固定宽度,点击降落以及当时应该在该位置下方的文本的事实来计算的,但是标点符号很复杂,这可能会导致线路及早包裹,并带来在字符之前,一行。

是否有另一种知道我缺少的触摸事件下的文字?

有帮助吗?

解决方案

在要求之前致电以下 selectedRange:

[[textView webView] updateSelectionWithPoint:point];

注意:两者兼而有之 -webView-updateSelectionWithPoint: 是私人API。您可以通过切换可编辑,成为第一响应者并发送假触摸事件来实现等效行为,但这将是更多的工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top