(iPhone)selectedRange用于不可编辑的UITextView(或其他点击处理方法?)

时间:2009-03-21 02:53:40

标签: iphone cocoa cocoa-touch selection uitextview

我使用UITextView来保存静态内容(中文,这意味着字符都是固定宽度)。我想让用户点击文本中的字符并显示该字符的字典信息。我知道所有关于缺少复制和粘贴的问题以及所有这些,但我希望有一种方法可以在不等待iPhone 3.0固件的情况下完成此操作。

首先,我考虑使用UITextView s selectedIndex属性。不幸的是,当UITextView不可编辑时,UITextView中的以下代码始终返回整个文本块的长度:

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

我认为这是有道理的,就像一个不可编辑的UITextView一样,没有办法选择一个插入点,但这对我没有任何帮助。 :)

另一种方法是使用中文文本是固定宽度的事实来计算,其中点击着陆以及当时该位置下应该是什么文本,但是这会因为标点符号而变得复杂,这可能会导致换行早期,将前面的字符放在一条线上。

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

1 个答案:

答案 0 :(得分:2)

在要求selectedRange

之前,请致电以下人员
[[textView webView] updateSelectionWithPoint:point];

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