如何通过输入法检测用户中途输入?

an0*_*an0 11 uitextview uikeyboard ios

如果用户使用输入法(例如中文拼音)在UITextView中输入,则存在拼音已经在文本视图中显示但是用户仍然没有选择最终中文字符的状态.截图将更加清晰:

在此输入图像描述

我想为用户做一些文本完成,但只应该为实际输入(用户选择的中文字符)而不是中间拼音输入.所以我需要检测这个待处理状态.

an0*_*an0 31

终于明白了.调用拼音等输入法Multistage Text Input.调用第一阶段,调用Marked第二阶段Committed.要确定它是否处于Marked阶段,应该查询UITextInputProtocol的markedTextRange属性:

if (textView.markedTextRange != nil) {
    // Marked.
}
Run Code Online (Sandbox Code Playgroud)