### 前言
TextInput组件作为基础部分,必不可少。
我们在做登录、提交信息时经常使用。
开发环境:
OS: Mac 10.11.6
Xcode: Version 8.0 (8A218a)
### 简单用例
```
<TextInput
style={S}
autoCapitalize="none"
multiline={true} //是否多行
keyboardType='numeric' //键盘类型:default, numeric,
placeholder={} //占位字符 背景提示,这里犯了错误,当时把颜色和背景设置一样了,死活看不到,满眼都是泪啊
placeholderTextColor="#bfbfbf" //占位符颜色
onChangeText={(text) => ({text})} //文本改变时触发这个事件, 获取本文时需要这个方法
/>
# keyboardType决定键盘类型,是个枚举
# enum('default', "ascii-capable", 'numbers-and-punctuation', 'url', 'number-pad', 'phone-pad',
#'name-phone-pad', 'email-address', 'decimal-pad', 'twitter', 'web-search', "numeric")
```
### 获取文本内容
在onChangeText中,我们已经告知文本内容,并实时保存在了state中,
我们只要在相应的处理函数中进行处理即可。
```
_handleInput() {
con);
}
```
### 设置width和height
如果你没有设置TextInput的样式,并且没有文本内容,那么默认是wrap的,因为TextInput不是块元素,
初次调试的时候,总是觉得很蹊跷,怎么看不到内容呢?在这里耽误了很长时间...
### 获得焦点,呼出键盘
从使用来看,当你单击输入框的时候,如果单击的位置偏上了或者偏下了,都不会触发onFocus事件,这时候不要谎,
单击中间部分,看到键盘了吧。
当然如果是iOS,需要打开Simulator->Hardware->Keyboard->Toggle Software Keyboard
快捷键 Command + K
### 失去焦点,隐藏键盘
这里有两个方法,也是经过搜索和尝试的,都可以正常满足你的需求。
把整个视图换成ScrollView
```
<ScrollView style={} keyboardShouldPersistTaps={false}>
<TextInput
placeholder="Post Title"
onChange={(event) => )}
style={}/>
</ScrollView>
```
使用dismissKeyboard和TouchableWithoutFeedback配合
```
import DismissKeyboard from 'dismissKeyboard';
<View style={}>
<TouchableWithoutFeedback onPress={ DismissKeyboard }>
<View>
<Text style={}>
Welcome to React Native!
</Text>
<Text style={}>
To get started, edit index.ios.js
</Text>
<Text style={}>
Press Cmd+R to reload,{'\n'}
Cmd+D or shake for dev menu
</Text>
<TextInput style={{height: 40, borderColor: 'gray', borderWidth: 1}} />
</View>
</TouchableWithoutFeedback>
</View>
```
### Android 取消默认文本下划线
一开始不知道设置这个属性,导致在Android平台上出现不一致的风格。如果匹配还好,
事实上,很别扭。一开始以为可以通过设置边框可以改变,通过尝试是行不通的。后来发现
下面的属性,一下子解决了我的问题。还是得看书啊
```
#TextInput 属性
underlineColorAndroid={'transparent'}
```
### 结束
:)~