2

我正在使用一个UITextView来保存静态内容(中文,这意味着字符都是固定宽度的)。我想让用户点击文本中的一个字符并显示该字符的字典信息。我知道所有与缺少复制和粘贴相关的问题,但我希望有一种方法可以做到这一点,而无需等待 iPhone 3.0 固件。

起初,我考虑使用UITextViewsselectedIndex属性。不幸的是,当'UITextView不可编辑时,UITextView' 中的以下代码总是返回整个文本块的长度:

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

我想这是有道理的,因为不可编辑UITextView的没有办法选择插入点,但这对我没有任何帮助。:)

另一种方法是计算,使用中文文本是固定宽度的事实,点击到达的位置以及当时应该在该位置下的文本,但这会因标点符号而变得复杂,这可能导致行提前换行,带来前一行的字符。

是否有另一种方法可以知道我缺少的触摸事件下的文本是什么?

4

1 回答 1

2

在询问之前拨打以下电话selectedRange

[[textView webView] updateSelectionWithPoint:point];

注意:-webView-updateSelectionWithPoint:都是私有 API。您还可以通过切换可编辑、成为第一响应者和发送假触摸事件来执行等效行为,但这需要更多的工作

于 2009-03-21T05:56:59.423 回答