iOS UITextField用中文拼音輸入法時,輸入拼音,尚未選定具體字符時,第一個字變成了字母,而不是漢字的問題處理方法

1.給textField增加一個事件:

[_firstTextField addTarget:self action:@selector(inputTextFieldChangeValue:) forControlEvents:UIControlEventEditingChanged];

2.在textFieldDidChange中,就可以接收到,所有的輸入,但是需要將選中態(tài)時的拼音排除掉。

- (void)inputTextFieldChangeValue:(UITextField *)textField {
    /**< 當輸入中文時,只獲取中文部分,過濾掉多余的字母 */
    UITextRange *selectedRange = [textField markedTextRange];
    NSString * newText = [textField textInRange:selectedRange];
    if (newText.length > 0) {/**< 獲取高亮部分 */
        return;
    }
    NSMutableString *string = [NSMutableString stringWithString:textField.text];
    if ([string containsString:@" "]) {/**< 過濾空格 */
        for (int i = 0; i < string.length; i++) {
            unichar c = [string characterAtIndex:i];
            NSRange range = NSMakeRange(i, 1);
            if (c == ' ') {
                [string deleteCharactersInRange:range];
            }
        }
    }
    textField.text = string;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容