TextInput iOS中文輸入推掉鍵盤之後如何正確獲取內容

weixin_33924312發表於2016-11-14

使用react-native的過程中遇到了一個問題,就是在編寫TextInput控制元件的時候,監聽控制元件ChangeText事件,發現在輸入中文到一半的時候退掉鍵盤,這個方法還是會獲取到輸入到內容,但是實際上UI介面上卻並未顯示任何文字,所以這就導致獲取的文字和介面上顯示的不一致。

701353-785b2dcbfa1fc8c9.jpeg

我的做法是把這個TextInput設定為多行輸入然後限制輸入的文字數量(這個也是這種解決辦法的弊端,同時字型會變小一點,但是後一點可以通過更改style彌補)

multiline = {true}
maxLength = {20}
value = {this.state.indictmentDesc}
onChangeText={(text) => {
         item['discription'] = text;
}}

其實還有一種解決辦法:

onBlur={(event)=>{
           item['name'] = event.nativeEvent.text;
}}

這種方法會有一個嚴重的問題就是當你取消輸入的時候會給TextInput自動填充上一次輸入成功的內容。(所以相比之下還是推薦第一種解決辦法)

如果哪位大神麼有什麼好方法歡迎私信,大家共同進步。

相關文章