【问题标题】:How to detect user is mid-way inputting with an Input Method?如何检测用户正在使用输入法进行中途输入?
【发布时间】:2012-09-22 09:37:28
【问题描述】:

如果用户在 UITextView 中使用输入法(例如中文拼音)进行输入,则会出现拼音已显示在文本视图中但用户仍未选择最终汉字的状态。截图会更清晰:

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

【问题讨论】:

    标签: ios uitextview uikeyboard


    【解决方案1】:

    终于明白了。拼音等输入法称为Multistage Text Input。第一阶段称为Marked,第二阶段称为Committed。判断是否处于Marked阶段,需要查询UITextInput协议的markedTextRange属性:

    if (textView.markedTextRange != nil) {
        // Marked.
    }
    

    【讨论】:

    • 嗨,您知道在哪里检测到何时输入了一个字符吗?我试过UITextViewDelegatetextViewDidChangeNSNotificationCenterUIControlEventEditingChanged和其他各种东西都无济于事..
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多