TextInput文本输入组件,用于接收用户输入的文本内容。
1、TextInput组件的参数
TextInput(value?:{placeholder?: string|Resource , text?: string|Resource})
- placeholder属性用于设置无输入时的提示文本
- text用于设置输入框当前的文本内容
@Entry
@Component
struct textInput {
@State isOn: boolean = true;
build() {
Column({ space: 10 }) {
Text('文本输入框 TextInput').fontSize(25)
TextInput({'placeholder':'输入文本内容','text':''}).width(200).height(50)
}
.width('100%')
.height("100%")
.justifyContent(FlexAlign.Center)
}
}
2、常用属性及事件
- 输入框类型
- 光标样式
- 文本样式
- change事件
- 焦点事件
2.1 输入框类型
可通过type()方法设置输入框的类型,该方法的参数为InputType枚举类型,可选的枚举值有
@Entry
@Component
struct textInput {
@State isOn: boolean = true;
build() {
Column({ space: 10 }) {
Text('文本输入框 TextInput').fontSize(25)
TextInput({'placeholder':'基本输入','text':''}).type(InputType.Normal).width(200).height(50)
TextInput({'placeholder':'数字','text':''}).type(InputType.Number).width(200).height(50)
TextInput({'placeholder':'密码','text':''}).type(InputType.Password).width(200).height(50)
}
.width('100%')
.height("100%")
.justifyContent(FlexAlign.Center)
}
}
2.2 placeholder样式
placeholder样式还可通过placeholderFont()
和placeholderColor()
方法设置 placeholder 的样式,其中placeholderFont()
用于设置字体,包括字体大小、字体粗细等,placeholderColor()
用于设置字体颜色
@Entry
@Component
struct textInput {
@State isOn: boolean = true;
build() {
Column({ space: 10 }) {
Text('文本输入框 TextInput').fontSize(25)
TextInput({'placeholder':'基本输入','text':''})
.placeholderFont({weight:'800'})
.placeholderColor(Color.Orange)
.type(InputType.Normal)
.width(200)
.height(50)
}
.width('100%')
.height("100%")
.justifyContent(FlexAlign.Center)
}
}
2.3 光标样式
可通过caretColor()方法设置光标的颜色
TextInput({'placeholder':'光标颜色','text':''}).type(InputType.Normal).caretColor(Color.Blue).width(200).height(50)
2.4 文本样式
输入文本的样式可通过fontSize()
、fontWeight()
、fontColor()
等通用属性方法进行设置
2.5 change事件
每当输入的内容发生变化,就会触发 change 事件,开发者可使用onChange()方法为TextInput组件绑定 change 事件。
@Entry
@Component
struct textInput {
@State isOn: boolean = true;
build() {
Column({ space: 10 }) {
Text('文本输入框 TextInput').fontSize(25)
TextInput({ 'placeholder': '光标颜色', 'text': '' })
.type(InputType.Normal)
.caretColor(Color.Blue)
.onChange((content) => {
console.log(content);
})
.width(200)
.height(50)
}
.width('100%')
.height("100%")
.justifyContent(FlexAlign.Center)
}
}
2.6 焦点事件
焦点事件包括获得焦点和失去焦点两个事件,当输入框获得焦点时,会触发 focus 事件,失去焦点时,会触发 blur 事件,开发者可使用onFocus()和onBlur()方法为 TextInput 组件绑定相关事件。
@Entry
@Component
struct textInput {
@State isOn: boolean = true;
build() {
Column({ space: 10 }) {
Text('文本输入框 TextInput').fontSize(25)
TextInput({ 'placeholder': '光标颜色', 'text': '' })
.type(InputType.Normal)
.caretColor(Color.Blue)
.onChange((content) => {
console.log(content);
})
.onFocus(() => {
console.log('输入框获得焦点');
})
.onBlur(() => {
console.log('输入框失去焦点');
})
.width(200)
.height(50)
TextInput({ 'placeholder': '测试', 'text': '' })
.width(200)
.height(50)
}
.width('100%')
.height("100%")
.justifyContent(FlexAlign.Center)
}
}