我们如何实现selectionRectsForRange:来自UITextInput协议?

时间:2013-01-04 14:51:36

标签: objective-c ios cocoa-touch automatic-ref-counting uitextinput

我们如何实现selectionRectsForRange:来自UITextInput协议? 有人想出这个吗? 它是否仅仅依赖于具体的用例需求?或者框架中有什么东西会调用这个方法吗?

要使编译器静音,当然应该将方法存根,但返回nil或空NSArray会造成什么伤害?

1 个答案:

答案 0 :(得分:1)

根据WWDC12的会话220,添加了此方法以支持UITextView的子类化,其中实现呈现其自己的文本。可悲的是,他们的会话中的示例代码不可用,很想看看它是否在我的实现中遗漏了任何内容。

它与您实现-firstRectForRange:的方式非常相似,除非您返回涵盖当前选择的所有内容。

此外,您必须继承UITextSelectionRect(它是一个像UITextPosition / UITextRange这样的抽象类),您将从此方法返回一个数组。请务必正确计算containsStartcontainsEnd属性,并且只返回您返回的所有选择对象中的一个属性。 UITextView使用这些属性来决定选择调整大小“paddles”的位置。

返回一个空数组(或者我认为是nil)表示UITextView不应该为当前选择绘制任何选择。