文本輸入框是一個(gè)允許用戶在應(yīng)用中通過(guò)鍵盤輸入文本的基本組件,相當(dāng)于OC中的UITextField。
一、TextInput組件常用的屬性及方法
(一)property
(1)autoCapitalize:控制輸入的字符進(jìn)行切換成大寫(參數(shù):none:不自動(dòng)切換任何字符大寫,sentences:默認(rèn)每個(gè)句子的首字母大寫,words:每個(gè)單詞的首字母變成大寫,characters:每個(gè)字母全部變成大寫)
(2)autoCorrect(bool):設(shè)置瓶邪自動(dòng)修正功能,默認(rèn)開啟(true)
(3)autoFocus(bool):設(shè)置是否默認(rèn)獲取到焦點(diǎn),默認(rèn)為關(guān)閉(false).需要comonentDidMount方法調(diào)用之后才會(huì)獲取焦點(diǎn)(componentDidMount是React組件被渲染之后React主動(dòng)回調(diào)的方法)
(4)defaultValue(string):給文本框輸入一個(gè)默認(rèn)初始值.
(5)editable(bool):設(shè)置文本框是否可以編輯,默認(rèn)為true,可以進(jìn)行編輯
(6)keyboard(type):
鍵盤類型(可選參數(shù):"default", 'email-address', 'numeric', 'phone-pad', "ascii-capable", 'numbers-and-punctuation', 'url', 'number-pad', 'name-phone-pad', 'decimal-pad', 'twitter', 'web-search') 該用來(lái)選擇默認(rèn)彈出鍵盤的類型例如我們甚至numeric就是彈出數(shù)字鍵盤。
鑒于平臺(tái)的原因如下的值是所有平臺(tái)都可以進(jìn)行通用的
- default
- numeric 數(shù)字鍵盤
- email-address 郵箱地址
(7)maxLength(number):可以限制文本輸入框最大的輸入字符長(zhǎng)度
(8)multiline (bool) : 設(shè)置可以輸入多行文字,默認(rèn)為false(表示無(wú)論文本輸入多少,都是單行顯示)
(9)placeholder (string) :當(dāng)文本輸入框還沒(méi)有任何輸入的時(shí)候,默認(rèn)顯示信息,當(dāng)有輸入的時(shí)候該值會(huì)被清除
(10)placeholderTextColor (string): 設(shè)置默認(rèn)信息顏色(placeholer)
(11)secureTextEntry (bool): 設(shè)置是否為密碼安全輸入框 ,默認(rèn)為false
(12)numberOfLines (number):設(shè)置文本輸入框行數(shù),該需要首先設(shè)置multiline為true,設(shè)置TextInput為多行文本。
(13)textAlign 設(shè)置文本橫向布局方式 可選參數(shù)('start', 'center', 'end')
(14)textAlignVertical: 設(shè)置文本垂直方向布局方式 可選參數(shù)('top', 'center', 'bottom')
(15)underlineColorAndroid: 設(shè)置文本輸入框下劃線的顏色(去掉下劃線'transparent')
(16)clearButtonMode:清除按鈕出現(xiàn)的時(shí)機(jī)
- never:不出現(xiàn)
- while-editing:編輯的時(shí)候出現(xiàn)
- unless-editing:沒(méi)有編輯時(shí)出現(xiàn)
- always:總是出現(xiàn)
(17)clearTextOnFocus:如果為true,每次開始輸入的時(shí)候都會(huì)清除文本框的內(nèi)容
(18) returnKeyType:決定返回鍵的樣式
- default
- go
- join
- next
- route
- search
- send
- yahoo
- done
- emergency-call
(19)value ( string ):輸入框中的內(nèi)容值
(20)selectionColor:可以修改光標(biāo)顏色
(二)function
(1)onBlur (function): 監(jiān)聽方法,文本框失去焦點(diǎn)回調(diào)方法
(2)onChange (function): 監(jiān)聽方法,文本框內(nèi)容發(fā)生改變回調(diào)方法
(3)onChangeText (function):監(jiān)聽方法,文本框內(nèi)容發(fā)生改變回調(diào)方法,該方法會(huì)進(jìn)行傳遞文本內(nèi)容( onChangeText={(Password) => this.setState({Password})})
(4)onEndEditing (function):監(jiān)聽方法,當(dāng)文本結(jié)束文本輸入回調(diào)方法
(5)onFocus (function) :監(jiān)聽方法 文本框獲取到焦點(diǎn)回調(diào)方法
(6)onLayout (function):監(jiān)聽方法 組價(jià)布局發(fā)生變化的時(shí)候調(diào)用,調(diào)用方法參數(shù)為 {x,y,width,height}
(7)onSubmitEditing (function):監(jiān)聽方法,當(dāng)編輯提交的時(shí)候回調(diào)方法。不過(guò)如果multiline={true}的時(shí)候,該屬性就不生效
(三)主動(dòng)獲取和釋放鍵盤
(1)主動(dòng)獲取調(diào)用鍵盤this._textInput.focus() (this._textInput為當(dāng)前文本框的引用)
<TextInput ref={component => this._textInput = component}/>
(2)主動(dòng)撤銷鍵盤this._textInput.blur()