在我的React Native应用程序中,我有两个TextInput组件,一个是数字,一个是默认值。问题是,onSubmitEditing适用于iOS和Android上的默认键盘,但它不会在iOS上的数字键盘上触发。
默认键盘:
我在下面的示例中使用默认的keyboardType。在Android和iOS上都会触发onSubmitEditing。
<TextInput
value={this.state.username}
onChangeText={(username) => this.setState({ username })}
onSubmitEditing={() => console.log('onSubmitEditing triggered')}
/>
Android键盘有一个勾号按钮,iOS键盘有一个返回按钮。当我按下这些按钮时,会在两个键盘上触发onSubmitEditing。
数字键盘:
我在以下示例中使用了数字keyboardType。我添加了returnKeyType =&#34; done&#34;,因为iOS键盘现在显示一个没有设置returnKeyType的按钮。
<TextInput
value={this.state.password}
keyboardType="numeric"
onChangeText={(password) => this.setState({ password })}
onSubmitEditing={() => console.log('onSubmitEditing triggered')}
returnKeyType="done"
/>
Android键盘显示一个勾选按钮,按下时会触发onSubmitEditing。 iOS键盘在键盘上方显示“完成”按钮,但不会触发onSubmitEditing。
我尝试使用onEndEditing prop,但它不能用作onSubmitEditing。它也会在模糊事件中触发。 onSubmitEditing仅在按下返回键按钮时触发,这是我真正需要的。