React Native 之組件TextInput

文本輸入框是一個(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
  • google
  • 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()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容