iOS - UITextView在調用textViewDidChange方法,九宮格相關中文輸入的問題


 

問題一

iOS textView在調用 UITextViewDelegate 的 textViewDidChange方法,九宮格相關中文輸入的問題

有時候,需要在textViewDidChange處理相關邏輯判斷時,在中文輸入的情況下,例如輸入“中”,對應的拼音“zhong”, 在textViewDidChange的方法里會把拼音也算進去;這就導致輸入中文時也輸入不需要的英文。 還有例如在九宮格下輸入@字符 textViewDidChange方法會調用兩次;這就導致做@跳轉會跳轉兩次 解決方法如下:

    NSString *lang = textView.textInputMode.primaryLanguage;//獲取鍵盤輸入模式
    if ([lang isEqualToString:@"zh-Hans"]){//九宮格
        //拼音輸入的時候 selectedRange 會有值 輸入完成 selectedRange 會等於nil
        //所以在輸入完再進行相關的邏輯操作
        UITextRange *selectedRange = [textView markedTextRange];
        if (!selectedRange) {//拼音全部輸入完成
            //寫相關輸入監聽邏輯
         
        }else{//bar上的拼音監聽
            //不做處理
        }
    }else{//英文情況下
        //寫相關輸入監聽邏輯
    }

 

如遇到其他問題會繼續補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM