UITextInput 的 Tokenizer,它是做啥用的?
Posted
技术标签:
【中文标题】UITextInput 的 Tokenizer,它是做啥用的?【英文标题】:Tokenizer of UITextInput, what is it used for?UITextInput 的 Tokenizer,它是做什么用的? 【发布时间】:2013-05-02 10:17:12 【问题描述】:我正在实现一个自定义文本输入视图,它采用UITextInput
协议,当使用UITextView
时,双击一个单词使单词被选中,我想知道UITextInput
如何使用它的标记器来标记字符串,通过现在,无论是否通过覆盖 [UITextInput -tokenizer]
方法为 UITextInput 分配标记器,我都没有看到任何区别。
【问题讨论】:
【参考方案1】:它用于键盘导航(当您连接了硬件键盘时)。例如,按住 Option 并使用箭头键在单词之间导航,转到行首/行尾。
来自 Apple 的 ios 文本编程指南:
标记器是确定文本位置是否为 在具有给定粒度的文本单元内或边界处。 当被文本输入系统查询时,分词器返回范围 具有给定粒度或边界文本位置的文本单元 具有给定粒度的文本单元。当前定义的粒度 是字符、单词、句子、段落、行和文档;枚举 UITextGranularity 类型的常量表示这些粒度。 文本单元的粒度总是参考 存储或布局方向。
文本输入系统以多种方式使用分词器。为了 例如,键盘可能需要最后一句话的价值 上下文来确定用户正在尝试键入的内容。或者,如果用户 按下 Option-左箭头键(在外部键盘上), 文本系统查询标记器以查找它需要的信息 移到上一个单词。
更多:https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/LowerLevelText-HandlingTechnologies/LowerLevelText-HandlingTechnologies.html
【讨论】:
以上是关于UITextInput 的 Tokenizer,它是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何实现 selectionRectsForRange: 从 UITextInput 协议?
如何对 NSUndoManager+UITextInput 的击键进行分组