2016-03-03 2 views
5

Ich habe eine TextInput die ich multiline als wahr aktiviert habe. Thing ist die Tastatur wird nicht verstecken, nachdem Return gedrückt wird. Es geht in eine neue Zeile. Also hoffte ich, react-native-dismiss-keyboard zu verwenden. Um dies auszunutzen, muss ich die Return-Tastenaktion identifizieren. Wie macht man das?Identifizieren Return Key Aktion in React Native

<TextInput 
    style={styles.additionalTextInput} 
    multiline={true} 
    autoCapitalize="sentences" 
    autoCorrect={true} 
    onChangeText={(text) => this.setState({text})} 
    keyboardType="default" 
    returnKeyType="done" 
    onKeyPress={(keyPress) => console.log(keyPress)} 
    placeholder="Enter text here..." 
/> 

Antwort

13

Okay, die Lösung gefunden.

<TextInput 
    style={styles.additionalTextInput} 
    multiline={true} 
    autoCapitalize="sentences" 
    autoCorrect={true} 
    onChangeText={(orderInstructions) => this.setState({orderInstructions})} 
    keyboardType="default" 
    returnKeyType="done" 
    onKeyPress={this.handleKeyDown} 
    placeholder="Enter text here..." 
/> 

handleKeyDown: function(e) { 
    if(e.nativeEvent.key == "Enter"){ 
     dismissKeyboard(); 
    } 
}, 

Verfahren dismissKeyboard ist aus react-native-dismiss-keyboard.

Das funktioniert perfekt für mich.

+0

Wenn Sie die Referenz greifen, können Sie auch laufen nur eine Unschärfe auf ihm: 'this._textInput.blur(); // entlassen Tastatur – kevando

+9

onKeyPress ist nur iOS, was ist mit Android? –

+1

Es ist hilfreich, danke! –

14

Was ich verwendet habe, ist onSubmitEditing Requisiten. z.B.

<TextInput style={[styles.textInput]} 
    placeholder='搜索' 
    placeholderTextColor='#bbb' 
    onChange={(event) => { 
    this.searchChange(event.nativeEvent.text) 
    }} 
    returnKeyType='search' 
    autoFocus={true} 
    value={ this.props.searchName } 
    selectionColor={colors.orangeColor} 
    onSubmitEditing={this.searchSubmit} 
    clearButtonMode="while-editing" 
/> 
+0

Dies sollte die akzeptierte Antwort sein. – iStar