How to detect user is mid-way inputting with an In

2019-03-13 03:08发布

If user is inputting in a UITextView using an Input Method such as Chinese Pinyin, there is a state where the Pinyin is already displayed in tne text view but user is still yet to choose the final Chinese characters. A screenshot will be much more clear:

enter image description here

I want to do some text completion for user, but should only do it for the real input(the Chinese characters user chooses) but not for the intermediate Pinyin input. So I need to detect this pending state.

1条回答
Juvenile、少年°
2楼-- · 2019-03-13 03:54

Finally got it. Input methods like Pinyin are called Multistage Text Input. The first stage is called Marked, the second stage is called Committed. To determine whether it is in Marked stage, one should query UITextInput Protocol's markedTextRange property:

if (textView.markedTextRange != nil) {
    // Marked.
}
查看更多
登录 后发表回答