好的,所以我知道 Apple 的 UITextInput
协议(protocol)需要两个 UITextRange
属性 selectedTextRange
和 markedTextRange
并且文档说 selectedTextRange
是 markedTextRange
的子范围,这是用户 yatta yatta 未确认的文本范围。对于我应该如何不同地实现这两个文本范围,这仍然使我不清楚。有人可以直观地向我解释 selectedTextRange
和 markedTextRange
之间的区别吗?我知道当 length
的 selectedTextRange
是 0
时,它表示 selectedTextRange
的 location
处有一个闪烁的插入符号。但是“标记文本”到底是什么呢??我只在 iOS 中看到了以下文本 View :
我假设它代表当前的 selectedTextRange
。 markedTextRange
是什么样的?或者它基本上完全相同?我很困惑 :( 在此先感谢您的帮助!在我对如何实现 UITextInput
协议(protocol)的理解中,文档已经证明它自己毫无用处。
编辑
实现 markedTextRange
是否与 View 中的某些文本可能是“可标记的”但“只读”的事实有关,selectedTextRange
表示“标记文本”中的子范围 markedTextRange
,即读写?
最佳答案
来自 UITextInput
的 Apple 文档:
因此 markedTextRange
对于需要多级输入的语言非常有用,例如日本人。
简单来说:用户输入的内容还有待确认,然后才能添加到文本输入控件的值中,是 markedTextRange
进入游戏。下面的 GIF 演示了 markedTextRange
的作用:
请注意未经证实的象形文字背后有轻微的蓝 gem 背景。在将标记的文本添加到输入控件值并删除背景后,通过按回车/返回、从建议中选择选项或手指点击文本区域来确认文本。
注释:
关于ios - UITextInput:selectedTextRange vs.markedTextRange?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24632708/