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

Posted

技术标签:

【中文标题】我们如何实现 selectionRectsForRange: 从 UITextInput 协议?【英文标题】:How do we implement selectionRectsForRange: from UITextInput Protocol? 【发布时间】:2013-01-04 14:51:36 【问题描述】:

我们如何实现 selectionRectsForRange: from UITextInput Protocol ? 有人想出这个吗? 它只是非常依赖于特定的用例需求吗?或者框架中有什么东西会调用这个方法?

为了使编译器静音,当然可以将方法存根,但是返回 nil 或空的 NSArray 会造成任何伤害吗?

【问题讨论】:

【参考方案1】:

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

它与您实现-firstRectForRange: 的方式非常相似,只是您将返回所有覆盖当前选择的矩形。

此外,您必须继承 UITextSelectionRect(它是一个类似于 UITextPosition/UITextRange 的抽象类),您将从该方法返回一个数组。确保正确计算 containsStartcontainsEnd 属性,并且在您返回的所有选择矩形中只为每个属性返回 YES 一次。 UITextView 使用这些属性来决定放置选择调整大小“桨”的位置。

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

【讨论】:

以上是关于我们如何实现 selectionRectsForRange: 从 UITextInput 协议?的主要内容,如果未能解决你的问题,请参考以下文章

到点提醒功能如何实现简单,不如试试Redis

我们如何在 Android 中使用 FirestoreRecyclerAdapter 实现基于日期的文档分组

我们如何实现我们在运球到ios应用程序时看到的精彩动画?

实际stl中默认赋值运算符是如何实现的

如何快速实现一个连接池?

我们如何在swift中使用协议实现并发线程? [关闭]