我们如何实现selectionRectsForRange:来自UITextInput协议? 有人想出这个吗? 它是否仅仅依赖于具体的用例需求?或者框架中有什么东西会调用这个方法吗?
要使编译器静音,当然应该将方法存根,但返回nil或空NSArray会造成什么伤害?
答案 0 :(得分:1)
根据WWDC12的会话220,添加了此方法以支持UITextView的子类化,其中实现呈现其自己的文本。可悲的是,他们的会话中的示例代码不可用,很想看看它是否在我的实现中遗漏了任何内容。
它与您实现-firstRectForRange:
的方式非常相似,除非您返回涵盖当前选择的所有内容。
此外,您必须继承UITextSelectionRect
(它是一个像UITextPosition / UITextRange这样的抽象类),您将从此方法返回一个数组。请务必正确计算containsStart
和containsEnd
属性,并且只返回您返回的所有选择对象中的一个属性。 UITextView使用这些属性来决定选择调整大小“paddles”的位置。
返回一个空数组(或者我认为是nil)表示UITextView不应该为当前选择绘制任何选择。