我使用UITextView
来保存静态内容(中文,这意味着字符都是固定宽度)。我想让用户点击文本中的字符并显示该字符的字典信息。我知道所有关于缺少复制和粘贴的问题以及所有这些,但我希望有一种方法可以在不等待iPhone 3.0固件的情况下完成此操作。
首先,我考虑使用UITextView
s selectedIndex
属性。不幸的是,当UITextView
不可编辑时,UITextView
中的以下代码始终返回整个文本块的长度:
NSRange touchPoint = self.selectedRange;
NSLog(@"Selection: %d", touchPoint.location);
我认为这是有道理的,就像一个不可编辑的UITextView
一样,没有办法选择一个插入点,但这对我没有任何帮助。 :)
另一种方法是使用中文文本是固定宽度的事实来计算,其中点击着陆以及当时该位置下应该是什么文本,但是这会因为标点符号而变得复杂,这可能会导致换行早期,将前面的字符放在一条线上。
是否有另一种方式可以知道我缺少的触摸事件下的文字是什么?
答案 0 :(得分:2)
在要求selectedRange
:
[[textView webView] updateSelectionWithPoint:point];
注意:-webView
和-updateSelectionWithPoint:
都是私有API。您还可以通过切换可编辑,成为第一响应者和发送假触摸事件来执行等效行为,但这将是更多的工作