問題一
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{//英文情況下 //寫相關輸入監聽邏輯 }
如遇到其他問題會繼續補充