13

如果用户使用中文拼音等输入法在 UITextView 中输入,则存在拼音已显示在文本视图中但用户仍未选择最终中文字符的状态。截图会更清晰:

在此处输入图像描述

我想为用户做一些文本完成,但应该只为真正的输入(用户选择的汉字)做,而不是为中间的拼音输入做。所以我需要检测这个挂起状态。

4

1 回答 1

35

终于明白了。像拼音这样的输入法被称为Multistage Text Input。第一阶段叫Marked,第二阶段叫Committed。要确定它是否处于Marked阶段,应该查询UITextInput协议的markedTextRange属性:

if (textView.markedTextRange != nil) {
    // Marked.
}
于 2012-11-19T15:45:46.617 回答