1e41f4b71Sopenharmony_ci# TextInput
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci单行文本输入框组件。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci>  该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## 子组件
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## 接口
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciTextInput(value?: TextInputOptions)
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**参数:**
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 |
26e41f4b71Sopenharmony_ci| ----- | ----- | ---- | ---- |
27e41f4b71Sopenharmony_ci| value | [TextInputOptions](#textinputoptions对象说明) | 否  | TextInput组件参数。 |
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci## TextInputOptions对象说明
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci| 名称 | 类型  | 必填   | 说明 |
36e41f4b71Sopenharmony_ci| ---- | ----- | ---- | ---- |
37e41f4b71Sopenharmony_ci| placeholder             | [ResourceStr](ts-types.md#resourcestr)   | 否    | 设置无输入时的提示文本。                             |
38e41f4b71Sopenharmony_ci| text                    | [ResourceStr](ts-types.md#resourcestr)   | 否    | 设置输入框当前的文本内容。</br>建议通过onChange事件将状态变量与文本实时绑定,</br>避免组件刷新时TextInput中的文本内容异常。<br />从API version 10开始,该参数支持[$$](../../../quick-start/arkts-two-way-sync.md)双向绑定变量。 |
39e41f4b71Sopenharmony_ci| controller<sup>8+</sup> | [TextInputController](#textinputcontroller8) | 否    | 设置TextInput控制器。                          |
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci## 属性
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci除支持[通用属性](ts-universal-attributes-size.md),还支持以下属性:
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci>  **说明:**    
46e41f4b71Sopenharmony_ci>  默认情况下,通用属性[padding](ts-universal-attributes-size.md#padding)的默认值为:<br>{<br>&nbsp;top: '8vp',<br>&nbsp;right: '16vp',<br>&nbsp;bottom: '8vp',<br>&nbsp;left: '16vp'<br> } 
47e41f4b71Sopenharmony_ci>  
48e41f4b71Sopenharmony_ci>  输入框开启下划线模式时,通用属性padding的默认值为:<br>{<br>&nbsp;top: '12vp',<br>&nbsp;right: '0vp',<br>&nbsp;bottom: '12vp',<br>&nbsp;left: '0vp'<br> }
49e41f4b71Sopenharmony_ci>
50e41f4b71Sopenharmony_ci>   从API version 10开始,单行输入框可设置.width('auto')使组件宽度自适应文本宽度,自适应时组件宽度受constraintSize属性以及父容器传递的最大最小宽度限制,其余使用方式参考[尺寸设置](ts-universal-attributes-size.md#属性)。
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci### type
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_citype(value: InputType)
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci设置输入框类型。
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci**参数:** 
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci| 参数名 | 类型                            | 必填 | 说明                                      |
65e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | ----------------------------------------- |
66e41f4b71Sopenharmony_ci| value  | [InputType](#inputtype枚举说明) | 是   | 输入框类型。<br/>默认值:InputType.Normal |
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci### placeholderColor
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ciplaceholderColor(value: ResourceColor)
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci设置placeholder文本颜色。
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci**参数:** 
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                         |
81e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | -------------------------------------------- |
82e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | placeholder文本颜色。<br/>默认值:跟随主题。 |
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci### placeholderFont
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ciplaceholderFont(value?: Font)
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。当前支持'HarmonyOS Sans'字体和[注册自定义字体](../js-apis-font.md)。
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**参数:** 
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci| 参数名 | 类型                     | 必填 | 说明                  |
97e41f4b71Sopenharmony_ci| ------ | ------------------------ | ---- | --------------------- |
98e41f4b71Sopenharmony_ci| value  | [Font](ts-types.md#font) | 否   | placeholder文本样式。 |
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci### enterKeyType
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_cienterKeyType(value: EnterKeyType)
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci设置输入法回车键类型。
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**参数:** 
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci| 参数名 | 类型                                             | 必填 | 说明                                             |
113e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------ | ---- | ------------------------------------------------ |
114e41f4b71Sopenharmony_ci| value  | [EnterKeyType](ts-types.md#enterkeytype枚举说明) | 是   | 输入法回车键类型。<br/>默认值:EnterKeyType.Done |
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci### caretColor
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_cicaretColor(value: ResourceColor)
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci设置输入框光标颜色。
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**参数:** 
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                   |
129e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | -------------------------------------- |
130e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 输入框光标颜色。<br/>默认值:'#007DFF' |
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci>  **说明:**     
133e41f4b71Sopenharmony_ci>   从API version 12开始,此接口支持设置文本手柄颜色,光标和文本手柄颜色保持一致。
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci### maxLength
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_cimaxLength(value: number)
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci设置文本的最大输入字符数。
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci**参数:** 
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                                                         |
148e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------------------------------------ |
149e41f4b71Sopenharmony_ci| value  | number | 是   | 文本的最大输入字符数。<br/>默认值:Infinity,可以无限输入。<br/>**说明:** <br/>当不设置该属性或设置异常值时,取默认值,设置小数时,取整数部分。 |
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci### fontColor
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_cifontColor(value: ResourceColor)
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci设置字体颜色。
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**参数:** 
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明       |
164e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ---------- |
165e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 字体颜色。 |
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci### fontSize
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_cifontSize(value: Length)
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci设置字体大小。
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**参数:** 
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci| 参数名 | 类型                         | 必填 | 说明                                                         |
180e41f4b71Sopenharmony_ci| ------ | ---------------------------- | ---- | ------------------------------------------------------------ |
181e41f4b71Sopenharmony_ci| value  | [Length](ts-types.md#length) | 是   | 字体大小。fontSize为number类型时,使用fp单位。字体默认大小16fp。不支持设置百分比字符串。 |
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci### fontStyle
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_cifontStyle(value: FontStyle)
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci设置字体样式。
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**参数:** 
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci| 参数名 | 类型                                        | 必填 | 说明                                    |
196e41f4b71Sopenharmony_ci| ------ | ------------------------------------------- | ---- | --------------------------------------- |
197e41f4b71Sopenharmony_ci| value  | [FontStyle](ts-appendix-enums.md#fontstyle) | 是   | 字体样式。<br/>默认值:FontStyle.Normal |
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci### fontWeight
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_cifontWeight(value: number | FontWeight | string)
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci设置文本的字体粗细,设置过大可能会在不同字体下有截断。
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci**参数:** 
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
212e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
213e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;[FontWeight](ts-appendix-enums.md#fontweight)&nbsp;\|&nbsp;string | 是   | 文本的字体粗细,number类型取值[100,&nbsp;900],取值间隔为100,默认为400,取值越大,字体越粗。string类型仅支持number类型取值的字符串形式,例如"400",以及"bold"、"bolder"、"lighter"、"regular"、"medium",分别对应FontWeight中相应的枚举值。<br/>默认值:FontWeight.Normal |
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci### fontFamily
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_cifontFamily(value: ResourceStr)
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci设置字体列表。
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**参数:** 
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci| 参数名 | 类型                                   | 必填 | 说明                                                         |
228e41f4b71Sopenharmony_ci| ------ | -------------------------------------- | ---- | ------------------------------------------------------------ |
229e41f4b71Sopenharmony_ci| value  | [ResourceStr](ts-types.md#resourcestr) | 是   | 字体列表。默认字体'HarmonyOS Sans'。<br>应用当前支持'HarmonyOS Sans'字体和[注册自定义字体](../js-apis-font.md)。<br>卡片当前仅支持'HarmonyOS Sans'字体。 |
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci### inputFilter<sup>8+</sup>
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ciinputFilter(value: ResourceStr, error?: (value: string) => void)
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci通过正则表达式设置输入过滤器。匹配表达式的输入允许显示,不匹配的输入将被过滤。仅支持单个字符匹配,不支持字符串匹配。
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci从API version 11开始,设置inputFilter且输入的字符不为空字符,会导致设置输入框类型(即type接口)附带的文本过滤效果失效。
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci**参数:** 
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ci| 参数名 | 类型                                   | 必填 | 说明                               |
246e41f4b71Sopenharmony_ci| ------ | -------------------------------------- | ---- | ---------------------------------- |
247e41f4b71Sopenharmony_ci| value  | [ResourceStr](ts-types.md#resourcestr) | 是   | 正则表达式。                       |
248e41f4b71Sopenharmony_ci| error  | (value: string) => void                | 否   | 正则匹配失败时,返回被过滤的内容。 |
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci### copyOption<sup>9+</sup>
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_cicopyOption(value: CopyOptions)
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci设置输入的文本是否可复制。设置CopyOptions.None时,当前TextInput中的文字无法被复制、剪切和帮写,仅支持粘贴。
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci设置CopyOptions.None时,不允许拖拽。
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**参数:** 
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci| 参数名 | 类型                                             | 必填 | 说明                                                         |
265e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
266e41f4b71Sopenharmony_ci| value  | [CopyOptions](ts-appendix-enums.md#copyoptions9) | 是   | 输入的文本是否可复制。<br/>默认值:CopyOptions.LocalDevice,支持设备内复制。 |
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_ci### showPasswordIcon<sup>9+</sup>
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_cishowPasswordIcon(value: boolean)
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci设置当密码输入模式时,输入框末尾的图标是否显示。
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci**参数:** 
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                        |
281e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ----------------------------------------------------------- |
282e41f4b71Sopenharmony_ci| value  | boolean | 是   | 密码输入模式时,输入框末尾的图标是否显示。<br/>默认值:true |
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ci### style<sup>9+</sup>
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_cistyle(value: TextInputStyle &nbsp;|&nbsp;TextContentStyle)
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci设置输入框为默认风格或内联输入风格,内联输入风格只支持InputType.Normal类型。
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci**参数:** 
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
297e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
298e41f4b71Sopenharmony_ci| value  | [TextInputStyle](#textinputstyle9枚举说明)&nbsp;\|&nbsp;[TextContentStyle](ts-appendix-enums.md#textcontentstyle10) | 是   | 输入框为默认风格或内联输入风格。<br/>默认值:TextInputStyle.Default |
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci### textAlign<sup>9+</sup>
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_citextAlign(value: TextAlign)
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci设置文本在输入框中的水平对齐方式。
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci仅支持TextAlign.StartTextAlign.CenterTextAlign.End307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_ci可通过[align](ts-universal-attributes-location.md)属性控制文本段落在垂直方向上的位置,此组件中不可通过align属性控制文本段落在水平方向上的位置,即align属性中Alignment.TopStartAlignment.TopAlignment.TopEnd效果相同,控制内容在顶部,Alignment.StartAlignment.CenterAlignment.End效果相同,控制内容垂直居中,Alignment.BottomStartAlignment.BottomAlignment.BottomEnd效果相同,控制内容在底部。
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci**参数:** 
315e41f4b71Sopenharmony_ci
316e41f4b71Sopenharmony_ci| 参数名 | 类型                                        | 必填 | 说明                                                       |
317e41f4b71Sopenharmony_ci| ------ | ------------------------------------------- | ---- | ---------------------------------------------------------- |
318e41f4b71Sopenharmony_ci| value  | [TextAlign](ts-appendix-enums.md#textalign) | 是   | 文本在输入框中的水平对齐方式。<br/>默认值:TextAlign.Start |
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci### selectedBackgroundColor<sup>10+</sup>
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ciselectedBackgroundColor(value: ResourceColor)
323e41f4b71Sopenharmony_ci
324e41f4b71Sopenharmony_ci设置文本选中底板颜色。如果未设置不透明度,默认为20%不透明度。
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci**参数:** 
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                       |
333e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ------------------------------------------ |
334e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 文本选中底板颜色。<br/>默认为20%不透明度。 |
335e41f4b71Sopenharmony_ci
336e41f4b71Sopenharmony_ci### caretStyle<sup>10+</sup>
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_cicaretStyle(value: CaretStyle)
339e41f4b71Sopenharmony_ci
340e41f4b71Sopenharmony_ci设置光标风格。
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
343e41f4b71Sopenharmony_ci
344e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
345e41f4b71Sopenharmony_ci
346e41f4b71Sopenharmony_ci**参数:** 
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci| 参数名 | 类型                                | 必填 | 说明         |
349e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ------------ |
350e41f4b71Sopenharmony_ci| value  | [CaretStyle](ts-text-common.md#caretstyle10) | 是   | 光标的风格。 |
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci### caretPosition<sup>10+</sup>
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_cicaretPosition(value: number)
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci设置光标位置。
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci**参数:** 
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明         |
365e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------ |
366e41f4b71Sopenharmony_ci| value  | number | 是   | 光标的位置。 |
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci### showUnit<sup>10+</sup>
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_cishowUnit(value: CustomBuilder)
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci设置控件作为文本框单位。需搭配[showUnderline](#showunderline10)使用,当showUnderline为true时生效。
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci**参数:** 
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci| 参数名 | 类型                                        | 必填 | 说明                           |
381e41f4b71Sopenharmony_ci| ------ | ------------------------------------------- | ---- | ------------------------------ |
382e41f4b71Sopenharmony_ci| value  | [CustomBuilder](ts-types.md#custombuilder8) | 是   | 文本输入时,文本框的显示单位。 |
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci### showError<sup>10+</sup>
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_cishowError(value?: ResourceStr | undefined)
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci设置错误状态下提示的错误文本或者不显示错误状态。
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci当参数类型为ResourceStr并且输入内容不符合定义规范时,提示错误文本,当提示错误单行文本超长时,末尾以省略号显示。当参数类型为undefined时,不显示错误状态。请参考[示例2](#示例2)。
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci**参数:** 
397e41f4b71Sopenharmony_ci
398e41f4b71Sopenharmony_ci| 参数名 | 类型                          | 必填 | 说明                                                         |
399e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | ------------------------------------------------------------ |
400e41f4b71Sopenharmony_ci| value  | [ResourceStr](ts-types.md#resourcestr)&nbsp;\|&nbsp;undefined | 否   | 错误状态下提示的错误文本或者不显示错误状态。<br/>默认不显示错误状态。<br/>**说明:** <br/>从API version 12开始,value支持Resource类型。 |
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci### showUnderline<sup>10+</sup>
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_cishowUnderline(value: boolean)
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_ci设置是否开启下划线。下划线默认颜色为'#33182431',默认粗细为1px,文本框尺寸48vp,下划线只支持InputType.Normal类型。
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci**参数:** 
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                               |
415e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------- |
416e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否开启下划线。<br/>默认值:false |
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci### passwordIcon<sup>10+</sup>
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_cipasswordIcon(value: PasswordIcon)
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ci设置当密码输入模式时,输入框末尾的图标。
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci支持jpg、png、bmp、heic和webp类型的图片格式。
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci该图标的固定尺寸为24vp,若引用的图标过大或过小,均显示为固定尺寸。
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**参数:** 
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci| 参数名 | 类型                                    | 必填 | 说明                                                         |
435e41f4b71Sopenharmony_ci| ------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
436e41f4b71Sopenharmony_ci| value  | [PasswordIcon](#passwordicon10对象说明) | 是   | 密码输入模式时,输入框末尾的图标。<br/>默认为系统提供的密码图标。 |
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci### enableKeyboardOnFocus<sup>10+</sup>
439e41f4b71Sopenharmony_ci
440e41f4b71Sopenharmony_cienableKeyboardOnFocus(value: boolean)
441e41f4b71Sopenharmony_ci
442e41f4b71Sopenharmony_ci设置TextInput通过点击以外的方式获焦时,是否绑定输入法。
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci从API version 10开始,获焦默认绑定输入法。
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci**参数:** 
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                        |
453e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ----------------------------------------------------------- |
454e41f4b71Sopenharmony_ci| value  | boolean | 是   | 通过点击以外的方式获焦时,是否绑定输入法。<br/>默认值:true |
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci### selectionMenuHidden<sup>10+</sup>
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ciselectionMenuHidden(value: boolean)
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci设置是否不弹出系统文本选择菜单。
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci**参数:** 
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                         |
469e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ------------------------------------------------------------ |
470e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否不弹出系统文本选择菜单。<br />设置为true时,单击输入框光标、长按输入框、双击输入框、三击输入框或者右键输入框,不弹出系统文本选择菜单。<br />设置为false时,弹出系统文本选择菜单。<br />默认值:false |
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci### barState<sup>10+</sup>
473e41f4b71Sopenharmony_ci
474e41f4b71Sopenharmony_cibarState(value: BarState)
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci设置内联输入风格编辑态时滚动条的显示模式。
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
479e41f4b71Sopenharmony_ci
480e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
481e41f4b71Sopenharmony_ci
482e41f4b71Sopenharmony_ci**参数:** 
483e41f4b71Sopenharmony_ci
484e41f4b71Sopenharmony_ci| 参数名 | 类型                                      | 必填 | 说明                                                         |
485e41f4b71Sopenharmony_ci| ------ | ----------------------------------------- | ---- | ------------------------------------------------------------ |
486e41f4b71Sopenharmony_ci| value  | [BarState](ts-appendix-enums.md#barstate) | 是   | 内联输入风格编辑态时滚动条的显示模式。<br/>默认值:BarState.Auto |
487e41f4b71Sopenharmony_ci
488e41f4b71Sopenharmony_ci### maxLines<sup>10+</sup>
489e41f4b71Sopenharmony_ci
490e41f4b71Sopenharmony_cimaxLines(value: number)
491e41f4b71Sopenharmony_ci
492e41f4b71Sopenharmony_ci设置内联输入风格编辑态时文本可显示的最大行数。
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
495e41f4b71Sopenharmony_ci
496e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
497e41f4b71Sopenharmony_ci
498e41f4b71Sopenharmony_ci**参数:** 
499e41f4b71Sopenharmony_ci
500e41f4b71Sopenharmony_ci| 参数名 | 类型                                      | 必填 | 说明                                                         |
501e41f4b71Sopenharmony_ci| ------ | ----------------------------------------- | ---- | ------------------------------------------------------------ |
502e41f4b71Sopenharmony_ci| value  | number | 是   | 内联输入风格编辑态时文本可显示的最大行数。<br/>默认值:3 <br/>取值范围:(0, +∞) |
503e41f4b71Sopenharmony_ci
504e41f4b71Sopenharmony_ci### customKeyboard<sup>10+</sup>
505e41f4b71Sopenharmony_ci
506e41f4b71Sopenharmony_cicustomKeyboard(value: CustomBuilder, options?: KeyboardOptions)
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ci设置自定义键盘。
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_ci当设置自定义键盘时,输入框激活后不会打开系统输入法,而是加载指定的自定义组件。
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ci自定义键盘的高度可以通过自定义组件根节点的height属性设置,宽度不可设置,使用系统默认值。
513e41f4b71Sopenharmony_ci
514e41f4b71Sopenharmony_ci自定义键盘采用覆盖原始界面的方式呈现,当没有开启避让模式或者输入框不需要避让的场景不会对应用原始界面产生压缩或者上提。
515e41f4b71Sopenharmony_ci
516e41f4b71Sopenharmony_ci自定义键盘无法获取焦点,但是会拦截手势事件。
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci默认在输入控件失去焦点时,关闭自定义键盘,开发者也可以通过[TextInputController](#textinputcontroller8).[stopEditing](#stopediting10)方法控制键盘关闭。
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci如果设备支持拍摄输入,设置自定义键盘后,该输入框会不支持拍摄输入。
521e41f4b71Sopenharmony_ci
522e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
523e41f4b71Sopenharmony_ci
524e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
525e41f4b71Sopenharmony_ci
526e41f4b71Sopenharmony_ci**参数:** 
527e41f4b71Sopenharmony_ci
528e41f4b71Sopenharmony_ci| 参数名                | 类型                                        | 必填 | 说明                                                         |
529e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
530e41f4b71Sopenharmony_ci| value                 | [CustomBuilder](ts-types.md#custombuilder8) | 是   | 自定义键盘。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
531e41f4b71Sopenharmony_ci| options<sup>12+</sup> | [KeyboardOptions](ts-basic-components-richeditor.md#keyboardoptions12)       | 否   | 设置自定义键盘是否支持避让功能。                             |
532e41f4b71Sopenharmony_ci
533e41f4b71Sopenharmony_ci### enableAutoFill<sup>11+</sup>
534e41f4b71Sopenharmony_ci
535e41f4b71Sopenharmony_cienableAutoFill(value: boolean)
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ci设置是否启用自动填充。
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci**参数:** 
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                         |
546e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ------------------------------------------------------------ |
547e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否启用自动填充。<br/>true表示启用,false表示不启用。<br/>默认值:true |
548e41f4b71Sopenharmony_ci
549e41f4b71Sopenharmony_ci### passwordRules<sup>11+</sup>
550e41f4b71Sopenharmony_ci
551e41f4b71Sopenharmony_cipasswordRules(value: string)
552e41f4b71Sopenharmony_ci
553e41f4b71Sopenharmony_ci定义生成密码的规则。在触发自动填充时,所设置的密码规则会透传给密码保险箱,用于新密码的生成。
554e41f4b71Sopenharmony_ci
555e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
556e41f4b71Sopenharmony_ci
557e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
558e41f4b71Sopenharmony_ci
559e41f4b71Sopenharmony_ci**参数:** 
560e41f4b71Sopenharmony_ci
561e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                 |
562e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------- |
563e41f4b71Sopenharmony_ci| value  | string | 是   | 定义生成密码的规则。 |
564e41f4b71Sopenharmony_ci
565e41f4b71Sopenharmony_ci### cancelButton<sup>11+</sup>
566e41f4b71Sopenharmony_ci
567e41f4b71Sopenharmony_cicancelButton(value: { style?: CancelButtonStyle, icon?: IconOptions })
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ci设置右侧清除按钮样式。不支持内联模式。
570e41f4b71Sopenharmony_ci
571e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
572e41f4b71Sopenharmony_ci
573e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
574e41f4b71Sopenharmony_ci
575e41f4b71Sopenharmony_ci**参数:** 
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
578e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
579e41f4b71Sopenharmony_ci| value  | {<br/>style? : [CancelButtonStyle](ts-basic-components-search.md#cancelbuttonstyle10枚举说明)<br/>icon?: [IconOptions](ts-basic-components-search.md#iconoptions10对象说明) <br/>} | 是   | 右侧清除按钮样式。<br />默认值:<br />{<br />style: CancelButtonStyle.INPUT<br />} |
580e41f4b71Sopenharmony_ci
581e41f4b71Sopenharmony_ci### selectAll<sup>11+</sup>
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ciselectAll(value: boolean)
584e41f4b71Sopenharmony_ci
585e41f4b71Sopenharmony_ci设置当初始状态,是否全选文本。不支持内联模式。
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
588e41f4b71Sopenharmony_ci
589e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
590e41f4b71Sopenharmony_ci
591e41f4b71Sopenharmony_ci**参数:** 
592e41f4b71Sopenharmony_ci
593e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                              |
594e41f4b71Sopenharmony_ci| ------ | ------- | ---- | --------------------------------- |
595e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否全选文本。<br />默认值:false |
596e41f4b71Sopenharmony_ci
597e41f4b71Sopenharmony_ci### showCounter<sup>11+</sup>
598e41f4b71Sopenharmony_ci
599e41f4b71Sopenharmony_cishowCounter(value: boolean, options?: InputCounterOptions)
600e41f4b71Sopenharmony_ci
601e41f4b71Sopenharmony_ci设置当通过InputCounterOptions输入的字符数超过阈值时显示计数器。
602e41f4b71Sopenharmony_ci
603e41f4b71Sopenharmony_ci参数value为true时,才能设置options,文本框开启计数下标功能,需要配合maxLength(设置最大字符限制)一起使用。字符计数器显示的效果是当前输入字符数/最大可输入字符数。
604e41f4b71Sopenharmony_ci
605e41f4b71Sopenharmony_ci当输入字符数大于最大字符数乘百分比值时,显示字符计数器。如果用户设置计数器时不设置InputCounterOptions,那么当前输入字符数超过最大字符数时,边框和计数器下标将变为红色。用户同时设置参数value为true和InputCounterOptions,当thresholdPercentage数值在有效区间内,且输入字符数超过最大字符数时,边框和计数器下标将变为红色,框体抖动。highlightBorder设置为false,则不显示红色边框,计数器默认显示红色,框体抖动。
606e41f4b71Sopenharmony_ci
607e41f4b71Sopenharmony_ci内联模式和密码模式下字符计数器不显示。
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
612e41f4b71Sopenharmony_ci
613e41f4b71Sopenharmony_ci**参数:** 
614e41f4b71Sopenharmony_ci
615e41f4b71Sopenharmony_ci| 参数名                | 类型                                                  | 必填 | 说明             |
616e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------------------------- | ---- | ---------------- |
617e41f4b71Sopenharmony_ci| value                 | boolean                                               | 是   | 是否显示计数器。 |
618e41f4b71Sopenharmony_ci| options<sup>11+</sup> | [InputCounterOptions](ts-types.md#inputcounteroptions11对象说明) | 否   | 计数器的百分比。 |
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_ci### contentType<sup>12+</sup>
621e41f4b71Sopenharmony_ci
622e41f4b71Sopenharmony_cicontentType(value: ContentType)
623e41f4b71Sopenharmony_ci
624e41f4b71Sopenharmony_ci设置自动填充类型。
625e41f4b71Sopenharmony_ci
626e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
627e41f4b71Sopenharmony_ci
628e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
629e41f4b71Sopenharmony_ci
630e41f4b71Sopenharmony_ci**参数:**
631e41f4b71Sopenharmony_ci
632e41f4b71Sopenharmony_ci| 参数名 | 类型                                  | 必填 | 说明           |
633e41f4b71Sopenharmony_ci| ------ | ------------------------------------- | ---- | -------------- |
634e41f4b71Sopenharmony_ci| value  | [ContentType](#contenttype12枚举说明) | 是   | 自动填充类型。 |
635e41f4b71Sopenharmony_ci
636e41f4b71Sopenharmony_ci### underlineColor<sup>12+</sup>
637e41f4b71Sopenharmony_ci
638e41f4b71Sopenharmony_ciunderlineColor(value: ResourceColor|UnderlineColor|undefined)
639e41f4b71Sopenharmony_ci
640e41f4b71Sopenharmony_ci开启下划线时,支持配置下划线颜色。
641e41f4b71Sopenharmony_ci
642e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
645e41f4b71Sopenharmony_ci
646e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
647e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
648e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) \| [UnderlineColor](#underlinecolor12对象说明) \| undefined | 是   | 设置下划线颜色。<br/>当设置下划线颜色模式时,修改下划线颜色。当只设定非特殊状态下的颜色,可以直接输入ResourceColor。设定值为undefined、null、无效值时,所有下划线恢复为默认值。<br/>默认值:主题配置的下划线颜色。主题配置的默认下滑颜色为'#33182431'。 |
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci### lineHeight<sup>12+</sup>
651e41f4b71Sopenharmony_ci
652e41f4b71Sopenharmony_cilineHeight(value: number | string | Resource)
653e41f4b71Sopenharmony_ci
654e41f4b71Sopenharmony_ci设置文本的文本行高,设置值不大于0时,不限制文本行高,自适应字体大小,number类型时单位为fp。
655e41f4b71Sopenharmony_ci
656e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
657e41f4b71Sopenharmony_ci
658e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
659e41f4b71Sopenharmony_ci
660e41f4b71Sopenharmony_ci**参数:**
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明             |
663e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ---------------- |
664e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本的文本行高。 |
665e41f4b71Sopenharmony_ci
666e41f4b71Sopenharmony_ci### decoration<sup>12+</sup>
667e41f4b71Sopenharmony_ci
668e41f4b71Sopenharmony_cidecoration(value: TextDecorationOptions)
669e41f4b71Sopenharmony_ci
670e41f4b71Sopenharmony_ci设置文本装饰线类型样式及其颜色。密码模式不生效。
671e41f4b71Sopenharmony_ci
672e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
673e41f4b71Sopenharmony_ci
674e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
675e41f4b71Sopenharmony_ci
676e41f4b71Sopenharmony_ci**参数:**
677e41f4b71Sopenharmony_ci
678e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
679e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
680e41f4b71Sopenharmony_ci| value  | [TextDecorationOptions](ts-types.md#textdecorationoptions12对象说明) | 是   | 文本装饰线对象。<br />默认值:{<br/>&nbsp;type:&nbsp;TextDecorationType.None,<br/>&nbsp;color:&nbsp;Color.Black,<br/>&nbsp;style:&nbsp;TextDecorationStyle.SOLID&nbsp;<br/>} |
681e41f4b71Sopenharmony_ci
682e41f4b71Sopenharmony_ci### letterSpacing<sup>12+</sup>
683e41f4b71Sopenharmony_ci
684e41f4b71Sopenharmony_ciletterSpacing(value: number | string | Resource)
685e41f4b71Sopenharmony_ci
686e41f4b71Sopenharmony_ci设置文本字符间距。设置该值为百分比时,按默认值显示。设置该值为0时,按默认值显示。
687e41f4b71Sopenharmony_ci
688e41f4b71Sopenharmony_ci当取值为负值时,文字会发生压缩,负值过小时会将组件内容区大小压缩为0,导致无内容显示。
689e41f4b71Sopenharmony_ci
690e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
691e41f4b71Sopenharmony_ci
692e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
693e41f4b71Sopenharmony_ci
694e41f4b71Sopenharmony_ci**参数:**
695e41f4b71Sopenharmony_ci
696e41f4b71Sopenharmony_ci| 参数名 | 类型                       | 必填 | 说明           |
697e41f4b71Sopenharmony_ci| ------ | -------------------------- | ---- | -------------- |
698e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本字符间距。 |
699e41f4b71Sopenharmony_ci
700e41f4b71Sopenharmony_ci### fontFeature<sup>12+</sup>
701e41f4b71Sopenharmony_ci
702e41f4b71Sopenharmony_cifontFeature(value: string)
703e41f4b71Sopenharmony_ci
704e41f4b71Sopenharmony_ci设置文字特性效果,比如数字等宽的特性。
705e41f4b71Sopenharmony_ci
706e41f4b71Sopenharmony_ci格式为:normal \| \<feature-tag-value\>
707e41f4b71Sopenharmony_ci
708e41f4b71Sopenharmony_ci\<feature-tag-value\>的格式为:\<string\> \[ \<integer\> \| on \| off ]
709e41f4b71Sopenharmony_ci
710e41f4b71Sopenharmony_ci\<feature-tag-value\>的个数可以有多个,中间用','隔开。
711e41f4b71Sopenharmony_ci
712e41f4b71Sopenharmony_ci例如,使用等宽数字的输入格式为:"ss01" on。
713e41f4b71Sopenharmony_ci
714e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
715e41f4b71Sopenharmony_ci
716e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
717e41f4b71Sopenharmony_ci
718e41f4b71Sopenharmony_ci**参数:** 
719e41f4b71Sopenharmony_ci
720e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明           |
721e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------- |
722e41f4b71Sopenharmony_ci| value  | string | 是   | 文字特性效果。 |
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ciFont Feature当前支持的属性见 [fontFeature属性列表](ts-basic-components-text.md#fontfeature12)。
725e41f4b71Sopenharmony_ci设置 Font Feature 属性,Font Feature 是 OpenType 字体的高级排版能力,如支持连字、数字等宽等特性,一般用在自定义字体中,其能力需要字体本身支持。
726e41f4b71Sopenharmony_ci更多 Font Feature 能力介绍可参考 https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop 和 https://sparanoid.com/lab/opentype-features/
727e41f4b71Sopenharmony_ci
728e41f4b71Sopenharmony_ci>  **说明:**
729e41f4b71Sopenharmony_ci>  type属性中InputType枚举为Password、NEW_PASSWORD和NUMBER_PASSWORD等密码模式时,暂时不支持fontFeature设置文本样式。
730e41f4b71Sopenharmony_ci
731e41f4b71Sopenharmony_ci### wordBreak<sup>12+</sup>
732e41f4b71Sopenharmony_ci
733e41f4b71Sopenharmony_ciwordBreak(value: WordBreak)
734e41f4b71Sopenharmony_ci
735e41f4b71Sopenharmony_ci设置文本断行规则。该属性在组件设置内联模式时样式生效,但对placeholder文本无效。
736e41f4b71Sopenharmony_ci
737e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
740e41f4b71Sopenharmony_ci
741e41f4b71Sopenharmony_ci**参数:** 
742e41f4b71Sopenharmony_ci
743e41f4b71Sopenharmony_ci| 参数名 | 类型                                          | 必填 | 说明                                          |
744e41f4b71Sopenharmony_ci| ------ | --------------------------------------------- | ---- | --------------------------------------------- |
745e41f4b71Sopenharmony_ci| value  | [WordBreak](ts-appendix-enums.md#wordbreak11) | 是   | 内联输入风格编辑态时断行规则。 <br />默认值:WordBreak.BREAK_WORD |
746e41f4b71Sopenharmony_ci
747e41f4b71Sopenharmony_ci>  **说明:**
748e41f4b71Sopenharmony_ci>
749e41f4b71Sopenharmony_ci>  组件不支持clip属性设置,设置该属性任意枚举值对组件文本截断无影响。
750e41f4b71Sopenharmony_ci
751e41f4b71Sopenharmony_ci### textOverflow<sup>12+</sup>
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_citextOverflow(value: TextOverflow)
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci设置文本超长时的显示方式。仅在内联模式的编辑态、非编辑态下支持。
756e41f4b71Sopenharmony_ci
757e41f4b71Sopenharmony_ci文本截断是按字截断。例如,英文以单词为最小单位进行截断,若需要以字母为单位进行截断,wordBreak属性可设置为WordBreak.BREAK_ALL758e41f4b71Sopenharmony_ci
759e41f4b71Sopenharmony_ci当overflow设置TextOverflow.NoneTextOverflow.Clip效果一样。
760e41f4b71Sopenharmony_ci
761e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
762e41f4b71Sopenharmony_ci
763e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
764e41f4b71Sopenharmony_ci
765e41f4b71Sopenharmony_ci**参数:** 
766e41f4b71Sopenharmony_ci
767e41f4b71Sopenharmony_ci| 参数名 | 类型                                                          | 必填 | 说明                                                                                                |
768e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | -------------------------------------------------------------------------------------------------- |
769e41f4b71Sopenharmony_ci| value  | [TextOverflow](ts-appendix-enums.md#textoverflow)            | 是   | 文本超长时的显示方式。<br/>内联模式非编辑态下默认值:TextOverflow.Ellipsis <br/>内联模式编辑态下默认值:TextOverflow.Clip                     |
770e41f4b71Sopenharmony_ci
771e41f4b71Sopenharmony_ci>  **说明:**  
772e41f4b71Sopenharmony_ci>   TextInput组件不支持设置TextOverflow.MARQUEE模式,当设置为TextOverflow.MARQUEE模式时 内联模式非编辑态下显示为TextOverflow.Ellipsis,内联模式编辑态下以及非内联模式下显示为TextOverflow.Clip
773e41f4b71Sopenharmony_ci
774e41f4b71Sopenharmony_ci### textIndent<sup>12+</sup>
775e41f4b71Sopenharmony_ci
776e41f4b71Sopenharmony_citextIndent(value: Dimension)
777e41f4b71Sopenharmony_ci
778e41f4b71Sopenharmony_ci设置首行文本缩进。
779e41f4b71Sopenharmony_ci
780e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
781e41f4b71Sopenharmony_ci
782e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
783e41f4b71Sopenharmony_ci
784e41f4b71Sopenharmony_ci**参数:** 
785e41f4b71Sopenharmony_ci
786e41f4b71Sopenharmony_ci| 参数名 | 类型                                  | 必填 | 说明                         |
787e41f4b71Sopenharmony_ci| ------ | ------------------------------------ | ---- | ---------------------------- |
788e41f4b71Sopenharmony_ci| value  | [Dimension](ts-types.md#dimension10) | 是   | 首行文本缩进。<br/>默认值:0 |
789e41f4b71Sopenharmony_ci
790e41f4b71Sopenharmony_ci### minFontSize<sup>12+</sup>
791e41f4b71Sopenharmony_ci
792e41f4b71Sopenharmony_ciminFontSize(value: number | string | Resource)
793e41f4b71Sopenharmony_ci
794e41f4b71Sopenharmony_ci设置文本最小显示字号。
795e41f4b71Sopenharmony_ci
796e41f4b71Sopenharmony_ci需配合[maxFontSize](#maxfontsize12)以及[maxLines](#maxlines10)(组件设置为内联输入风格且编辑态时使用)或布局大小限制使用,单独设置不生效。
797e41f4b71Sopenharmony_ci
798e41f4b71Sopenharmony_ci自适应字号生效时,fontSize设置不生效。
799e41f4b71Sopenharmony_ci
800e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
801e41f4b71Sopenharmony_ci
802e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
803e41f4b71Sopenharmony_ci
804e41f4b71Sopenharmony_ci**参数:**
805e41f4b71Sopenharmony_ci
806e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
807e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
808e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本最小显示字号。 |
809e41f4b71Sopenharmony_ci
810e41f4b71Sopenharmony_ci### maxFontSize<sup>12+</sup>
811e41f4b71Sopenharmony_ci
812e41f4b71Sopenharmony_cimaxFontSize(value: number | string | Resource)
813e41f4b71Sopenharmony_ci
814e41f4b71Sopenharmony_ci设置文本最大显示字号。
815e41f4b71Sopenharmony_ci
816e41f4b71Sopenharmony_ci需配合[minFontSize](#minfontsize12)以及[maxLines](#maxlines10)(组件设置为内联输入风格且编辑态时使用)或布局大小限制使用,单独设置不生效。
817e41f4b71Sopenharmony_ci
818e41f4b71Sopenharmony_ci自适应字号生效时,fontSize设置不生效。
819e41f4b71Sopenharmony_ci
820e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
821e41f4b71Sopenharmony_ci
822e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
823e41f4b71Sopenharmony_ci
824e41f4b71Sopenharmony_ci**参数:**
825e41f4b71Sopenharmony_ci
826e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
827e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
828e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本最大显示字号。 |
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci### heightAdaptivePolicy<sup>12+</sup>
831e41f4b71Sopenharmony_ci
832e41f4b71Sopenharmony_ciheightAdaptivePolicy(value: TextHeightAdaptivePolicy)
833e41f4b71Sopenharmony_ci
834e41f4b71Sopenharmony_ci组件设置为内联输入风格时,设置文本自适应高度的方式。
835e41f4b71Sopenharmony_ci
836e41f4b71Sopenharmony_ci当设置为TextHeightAdaptivePolicy.MAX_LINES_FIRST时,优先使用[maxLines](#maxlines10)属性来调整文本高度。如果使用maxLines属性的布局大小超过了布局约束,则尝试在[minFontSize](#minfontsize12)和[maxFontSize](#maxfontsize12)的范围内缩小字体以显示更多文本。
837e41f4b71Sopenharmony_ci
838e41f4b71Sopenharmony_ci当设置为TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST时,优先使用minFontSize属性来调整文本高度。如果使用minFontSize属性可以将文本布局在一行中,则尝试在minFontSize和maxFontSize的范围内增大字体并使用最大可能的字体大小。
839e41f4b71Sopenharmony_ci
840e41f4b71Sopenharmony_ci当设置为TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST时,与TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST效果一样。
841e41f4b71Sopenharmony_ci
842e41f4b71Sopenharmony_ci组件设置为非内联输入风格时,设置文本自适应高度(TextHeightAdaptivePolicy)的三种方式效果一样,即在minFontSize和maxFontSize的范围内缩小字体以显示更多文本。
843e41f4b71Sopenharmony_ci
844e41f4b71Sopenharmony_ci>  **说明:**
845e41f4b71Sopenharmony_ci>
846e41f4b71Sopenharmony_ci>  组件设置为内联输入风格,编辑态与非编辑态存在字体大小不一致情况。
847e41f4b71Sopenharmony_ci
848e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
849e41f4b71Sopenharmony_ci
850e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
851e41f4b71Sopenharmony_ci
852e41f4b71Sopenharmony_ci**参数:** 
853e41f4b71Sopenharmony_ci
854e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
855e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
856e41f4b71Sopenharmony_ci| value  | [TextHeightAdaptivePolicy](ts-appendix-enums.md#textheightadaptivepolicy10) | 是   | 文本自适应高度的方式。<br/>默认值:TextHeightAdaptivePolicy.MAX_LINES_FIRST |
857e41f4b71Sopenharmony_ci
858e41f4b71Sopenharmony_ci### showPassword<sup>12+</sup>
859e41f4b71Sopenharmony_ci
860e41f4b71Sopenharmony_cishowPassword(visible: boolean)
861e41f4b71Sopenharmony_ci
862e41f4b71Sopenharmony_ci设置密码的显隐状态。
863e41f4b71Sopenharmony_ci
864e41f4b71Sopenharmony_ci需组合密码模式才能生效,非密码输入模式不生效。
865e41f4b71Sopenharmony_ci
866e41f4b71Sopenharmony_ci密码模式时,由于输入框末尾的图标内置更新密码模式的状态,建议在[onSecurityStateChange](#onsecuritystatechange12)上增加状态同步。
867e41f4b71Sopenharmony_ci
868e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
869e41f4b71Sopenharmony_ci
870e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
871e41f4b71Sopenharmony_ci
872e41f4b71Sopenharmony_ci**参数:** 
873e41f4b71Sopenharmony_ci
874e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
875e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
876e41f4b71Sopenharmony_ci| visible  | boolean | 是  | 是否显示密码。<br/>默认值:false |
877e41f4b71Sopenharmony_ci
878e41f4b71Sopenharmony_ci### lineBreakStrategy<sup>12+</sup>
879e41f4b71Sopenharmony_ci
880e41f4b71Sopenharmony_cilineBreakStrategy(strategy: LineBreakStrategy)
881e41f4b71Sopenharmony_ci
882e41f4b71Sopenharmony_ci设置折行规则。该属性在wordBreak不等于breakAll的时候生效,不支持连词符。
883e41f4b71Sopenharmony_ci
884e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
885e41f4b71Sopenharmony_ci
886e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
887e41f4b71Sopenharmony_ci
888e41f4b71Sopenharmony_ci**参数:** 
889e41f4b71Sopenharmony_ci
890e41f4b71Sopenharmony_ci| 参数名   | 类型                                                         | 必填 | 说明                                                         |
891e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
892e41f4b71Sopenharmony_ci| strategy | [LineBreakStrategy](ts-appendix-enums.md#linebreakstrategy12) | 是   | 文本的折行规则。 <br />默认值:LineBreakStrategy.GREEDY <br/>**说明:**<br/> 非Inline模式该属性不生效 |
893e41f4b71Sopenharmony_ci
894e41f4b71Sopenharmony_ci### editMenuOptions<sup>12+</sup>
895e41f4b71Sopenharmony_ci
896e41f4b71Sopenharmony_cieditMenuOptions(editMenu: EditMenuOptions)
897e41f4b71Sopenharmony_ci
898e41f4b71Sopenharmony_ci设置自定义菜单扩展项,允许用户设置扩展项的文本内容、图标、回调方法。
899e41f4b71Sopenharmony_ci
900e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
901e41f4b71Sopenharmony_ci
902e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
903e41f4b71Sopenharmony_ci
904e41f4b71Sopenharmony_ci**参数:** 
905e41f4b71Sopenharmony_ci
906e41f4b71Sopenharmony_ci| 参数名 | 类型                                          | 必填 | 说明                                          |
907e41f4b71Sopenharmony_ci| ------ | --------------------------------------------- | ---- | --------------------------------------------- |
908e41f4b71Sopenharmony_ci| editMenu  | [EditMenuOptions](ts-text-common.md#editmenuoptions对象说明) | 是   | 扩展菜单选项。 |
909e41f4b71Sopenharmony_ci
910e41f4b71Sopenharmony_ci### enablePreviewText<sup>12+</sup>
911e41f4b71Sopenharmony_ci
912e41f4b71Sopenharmony_cienablePreviewText(enable: boolean)
913e41f4b71Sopenharmony_ci
914e41f4b71Sopenharmony_ci设置是否开启输入预上屏。
915e41f4b71Sopenharmony_ci
916e41f4b71Sopenharmony_ci预上屏内容定义为文字暂存态,目前不支持文字拦截功能,因此不触发onWillInsert、onDidInsert、onWillDelete、onDidDelete回调。
917e41f4b71Sopenharmony_ci
918e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
919e41f4b71Sopenharmony_ci
920e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
921e41f4b71Sopenharmony_ci
922e41f4b71Sopenharmony_ci**参数:** 
923e41f4b71Sopenharmony_ci
924e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                               |
925e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------- |
926e41f4b71Sopenharmony_ci| enable | boolean | 是   | 是否开启输入预上屏。<br/>默认值:true |
927e41f4b71Sopenharmony_ci
928e41f4b71Sopenharmony_ci>  **说明:**
929e41f4b71Sopenharmony_ci>
930e41f4b71Sopenharmony_ci>  该接口在CAPI场景使用时下,默认关闭。可以在工程的module.json5中配置[metadata](../../../../application-dev/quick-start/module-structure.md#metadata对象内部结构)字段控制是否启用预上屏,配置如下:
931e41f4b71Sopenharmony_ci> ```json
932e41f4b71Sopenharmony_ci> "metadata": [
933e41f4b71Sopenharmony_ci>  {
934e41f4b71Sopenharmony_ci>     "name": "can_preview_text",
935e41f4b71Sopenharmony_ci>     "value": "true",
936e41f4b71Sopenharmony_ci>  }
937e41f4b71Sopenharmony_ci> ]
938e41f4b71Sopenharmony_ci> ```
939e41f4b71Sopenharmony_ci
940e41f4b71Sopenharmony_ci### enableHapticFeedback<sup>13+</sup>
941e41f4b71Sopenharmony_ci
942e41f4b71Sopenharmony_cienableHapticFeedback(isEnabled: boolean)
943e41f4b71Sopenharmony_ci
944e41f4b71Sopenharmony_ci设置是否开启触控反馈。
945e41f4b71Sopenharmony_ci
946e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
947e41f4b71Sopenharmony_ci
948e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
949e41f4b71Sopenharmony_ci
950e41f4b71Sopenharmony_ci**参数:** 
951e41f4b71Sopenharmony_ci
952e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                               |
953e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------- |
954e41f4b71Sopenharmony_ci| isEnabled | boolean | 是   | 是否开启触控反馈。<br/>默认值:true |
955e41f4b71Sopenharmony_ci
956e41f4b71Sopenharmony_ci>  **说明:**
957e41f4b71Sopenharmony_ci>
958e41f4b71Sopenharmony_ci>  开启触控反馈时,需要在工程的module.json5中配置requestPermissions字段开启振动权限,配置如下:
959e41f4b71Sopenharmony_ci> ```json
960e41f4b71Sopenharmony_ci> "requestPermissions": [
961e41f4b71Sopenharmony_ci>  {
962e41f4b71Sopenharmony_ci>     "name": "ohos.permission.VIBRATE",
963e41f4b71Sopenharmony_ci>  }
964e41f4b71Sopenharmony_ci> ]
965e41f4b71Sopenharmony_ci> ```
966e41f4b71Sopenharmony_ci
967e41f4b71Sopenharmony_ci## InputType枚举说明
968e41f4b71Sopenharmony_ci
969e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
970e41f4b71Sopenharmony_ci
971e41f4b71Sopenharmony_ci| 名称                          | 说明                                                     |
972e41f4b71Sopenharmony_ci| ----------------------------- | ------------------------------------------------------------ |
973e41f4b71Sopenharmony_ci| Normal                        | 基本输入模式,无特殊限制。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
974e41f4b71Sopenharmony_ci| Password                      | 密码输入模式。<br/>支持输入数字、字母、下划线、空格、特殊字符。密码显示小眼睛图标,默认输入文字短暂显示后变成圆点,从API version 12开始,特定设备上输入文字直接显示为圆点。密码输入模式不支持下划线样式。在已启用密码保险箱的情况下,支持用户名、密码的自动保存和自动填充。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
975e41f4b71Sopenharmony_ci| Email                         | 邮箱地址输入模式。<br/>支持数字、字母、下划线、小数点、!、#、$、%、&、'、*、+、-、/、=、?、^、`、\{、\|、\}、~,以及@字符(只能存在一个@字符)。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
976e41f4b71Sopenharmony_ci| Number                        | 纯数字输入模式。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
977e41f4b71Sopenharmony_ci| PhoneNumber<sup>9+</sup>      | 电话号码输入模式。<br/>支持输入数字、空格、+ 、-、*、#、(、),长度不限。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
978e41f4b71Sopenharmony_ci| USER_NAME<sup>11+</sup>       | 用户名输入模式。<br/>在已启用密码保险箱的情况下,支持用户名、密码的自动保存和自动填充。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
979e41f4b71Sopenharmony_ci| NEW_PASSWORD<sup>11+</sup>    | 新密码输入模式。<br/>密码显示小眼睛图标,默认输入文字短暂显示后变成圆点,从API version 12开始,特定设备上输入文字直接显示为圆点。在已启用密码保险箱的情况下,支持自动生成新密码。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
980e41f4b71Sopenharmony_ci| NUMBER_PASSWORD<sup>11+</sup> | 纯数字密码输入模式。<br/>密码显示小眼睛图标,默认输入文字短暂显示后变成圆点,从API version 12开始,特定设备上输入文字直接显示为圆点。密码输入模式不支持下划线样式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
981e41f4b71Sopenharmony_ci| NUMBER_DECIMAL<sup>11+</sup>  | 带小数点的数字输入模式。<br/>支持数字,小数点(只能存在一个小数点)。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
982e41f4b71Sopenharmony_ci| URL<sup>12+</sup>  | 带URL的输入模式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
983e41f4b71Sopenharmony_ci
984e41f4b71Sopenharmony_ci## ContentType<sup>12+</sup>枚举说明
985e41f4b71Sopenharmony_ci
986e41f4b71Sopenharmony_ci自动填充类型。
987e41f4b71Sopenharmony_ci
988e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
989e41f4b71Sopenharmony_ci
990e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
991e41f4b71Sopenharmony_ci
992e41f4b71Sopenharmony_ci| 名称                       | 值   | 说明                                                         |
993e41f4b71Sopenharmony_ci| -------------------------- | ---- | ------------------------------------------------------------ |
994e41f4b71Sopenharmony_ci| USER_NAME                  | 0    | 【用户名】在已启用密码保险箱的情况下,支持用户名的自动保存和自动填充。 |
995e41f4b71Sopenharmony_ci| PASSWORD                   | 1    | 【密码】在已启用密码保险箱的情况下,支持密码的自动保存和自动填充。 |
996e41f4b71Sopenharmony_ci| NEW_PASSWORD               | 2    | 【新密码】在已启用密码保险箱的情况下,支持自动生成新密码。   |
997e41f4b71Sopenharmony_ci| FULL_STREET_ADDRESS        | 3    | 【详细地址】在已启用情景化自动填充的情况下,支持详细地址的自动保存和自动填充。 |
998e41f4b71Sopenharmony_ci| HOUSE_NUMBER               | 4    | 【门牌号】在已启用情景化自动填充的情况下,支持门牌号的自动保存和自动填充。 |
999e41f4b71Sopenharmony_ci| DISTRICT_ADDRESS           | 5    | 【区/县】在已启用情景化自动填充的情况下,支持区/县的自动保存和自动填充。 |
1000e41f4b71Sopenharmony_ci| CITY_ADDRESS               | 6    | 【市】在已启用情景化自动填充的情况下,支持市的自动保存和自动填充。 |
1001e41f4b71Sopenharmony_ci| PROVINCE_ADDRESS           | 7    | 【省】在已启用情景化自动填充的情况下,支持省的自动保存和自动填充。 |
1002e41f4b71Sopenharmony_ci| COUNTRY_ADDRESS            | 8    | 【国家】在已启用情景化自动填充的情况下,支持国家的自动保存和自动填充。 |
1003e41f4b71Sopenharmony_ci| PERSON_FULL_NAME           | 9    | 【姓名】在已启用情景化自动填充的情况下,支持姓名的自动保存和自动填充。 |
1004e41f4b71Sopenharmony_ci| PERSON_LAST_NAME           | 10   | 【姓氏】在已启用情景化自动填充的情况下,支持姓氏的自动保存和自动填充。 |
1005e41f4b71Sopenharmony_ci| PERSON_FIRST_NAME          | 11   | 【名字】在已启用情景化自动填充的情况下,支持名字的自动保存和自动填充。 |
1006e41f4b71Sopenharmony_ci| PHONE_NUMBER               | 12   | 【手机号码】在已启用情景化自动填充的情况下,支持手机号码的自动保存和自动填充。 |
1007e41f4b71Sopenharmony_ci| PHONE_COUNTRY_CODE         | 13   | 【国家代码】在已启用情景化自动填充的情况下,支持国家代码的自动保存和自动填充。 |
1008e41f4b71Sopenharmony_ci| FULL_PHONE_NUMBER          | 14   | 【包含国家代码的手机号码】在已启用情景化自动填充的情况下,支持包含国家代码的手机号码的自动保存和自动填充。 |
1009e41f4b71Sopenharmony_ci| EMAIL_ADDRESS              | 15   | 【邮箱地址】在已启用情景化自动填充的情况下,支持邮箱地址的自动保存和自动填充。 |
1010e41f4b71Sopenharmony_ci| BANK_CARD_NUMBER           | 16   | 【银行卡号】在已启用情景化自动填充的情况下,支持银行卡号的自动保存和自动填充。 |
1011e41f4b71Sopenharmony_ci| ID_CARD_NUMBER             | 17   | 【身份证号】在已启用情景化自动填充的情况下,支持身份证号的自动保存和自动填充。 |
1012e41f4b71Sopenharmony_ci| NICKNAME                   | 23   | 【昵称】在已启用情景化自动填充的情况下,支持昵称的自动保存和自动填充。 |
1013e41f4b71Sopenharmony_ci| DETAIL_INFO_WITHOUT_STREET | 24   | 【无街道地址】在已启用情景化自动填充的情况下,支持无街道地址的自动保存和自动填充。 |
1014e41f4b71Sopenharmony_ci| FORMAT_ADDRESS             | 25   | 【标准地址】在已启用情景化自动填充的情况下,支持标准地址的自动保存和自动填充。 |
1015e41f4b71Sopenharmony_ci
1016e41f4b71Sopenharmony_ci## TextInputStyle<sup>9+</sup>枚举说明
1017e41f4b71Sopenharmony_ci
1018e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1019e41f4b71Sopenharmony_ci
1020e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1021e41f4b71Sopenharmony_ci
1022e41f4b71Sopenharmony_ci| 名称    | 说明                                                         |
1023e41f4b71Sopenharmony_ci| ------- | ------------------------------------------------------------ |
1024e41f4b71Sopenharmony_ci| Default | 默认风格,光标宽1.5vp,光标高度与文本选中底板高度和字体大小相关。 |
1025e41f4b71Sopenharmony_ci| Inline  | 内联输入风格。文本选中底板高度与输入框高度相同。<br/>内联输入是在有明显的编辑态/非编辑态的区分场景下使用,例如:文件列表视图中的重命名。<br/>不支持showError属性。<br/>内联模式下,不支持拖入文本。 |
1026e41f4b71Sopenharmony_ci
1027e41f4b71Sopenharmony_ci## PasswordIcon<sup>10+</sup>对象说明
1028e41f4b71Sopenharmony_ci
1029e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1030e41f4b71Sopenharmony_ci
1031e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1032e41f4b71Sopenharmony_ci
1033e41f4b71Sopenharmony_ci| 名称 | 类型  | 必填   | 说明 |
1034e41f4b71Sopenharmony_ci| ---- | ----- | ---- | ---- |
1035e41f4b71Sopenharmony_ci| onIconSrc  | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否    | 密码输入模式时,能够切换密码隐藏的显示状态的图标。 |
1036e41f4b71Sopenharmony_ci| offIconSrc | string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 否    | 密码输入模式时,能够切换密码显示的隐藏状态的图标。 |
1037e41f4b71Sopenharmony_ci
1038e41f4b71Sopenharmony_ci
1039e41f4b71Sopenharmony_ci### cancelButton<sup>14+</sup>
1040e41f4b71Sopenharmony_ci
1041e41f4b71Sopenharmony_cicancelButton(value: CancelButtonSymbolOptions)
1042e41f4b71Sopenharmony_ci
1043e41f4b71Sopenharmony_ci设置右侧清除按钮样式。不支持内联模式。
1044e41f4b71Sopenharmony_ci
1045e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
1046e41f4b71Sopenharmony_ci
1047e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1048e41f4b71Sopenharmony_ci
1049e41f4b71Sopenharmony_ci**参数:** 
1050e41f4b71Sopenharmony_ci
1051e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
1052e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
1053e41f4b71Sopenharmony_ci| value  | [CancelButtonSymbolOptions](ts-basic-components-search.md#cancelbuttonsymboloptions12对象说明) | 是   | 右侧清除按钮样式。<br />默认值:<br />{<br />style: CancelButtonStyle.INPUT<br />} |
1054e41f4b71Sopenharmony_ci
1055e41f4b71Sopenharmony_ci## 事件
1056e41f4b71Sopenharmony_ci
1057e41f4b71Sopenharmony_ci除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
1058e41f4b71Sopenharmony_ci
1059e41f4b71Sopenharmony_ci### onChange
1060e41f4b71Sopenharmony_ci
1061e41f4b71Sopenharmony_cionChange(callback:&nbsp;EditableTextOnChangeCallback)
1062e41f4b71Sopenharmony_ci
1063e41f4b71Sopenharmony_ci输入内容发生变化时,触发该回调。
1064e41f4b71Sopenharmony_ci
1065e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1066e41f4b71Sopenharmony_ci
1067e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1068e41f4b71Sopenharmony_ci
1069e41f4b71Sopenharmony_ci**参数:** 
1070e41f4b71Sopenharmony_ci
1071e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                 |
1072e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------- |
1073e41f4b71Sopenharmony_ci| callback  | [EditableTextOnChangeCallback](ts-text-common.md#editabletextonchangecallback12) | 是   | 当前输入文本内容变化时的回调。 |
1074e41f4b71Sopenharmony_ci
1075e41f4b71Sopenharmony_ci### onSubmit
1076e41f4b71Sopenharmony_ci
1077e41f4b71Sopenharmony_cionSubmit(callback:&nbsp;(enterKey:&nbsp;EnterKeyType,&nbsp;event:&nbsp;SubmitEvent)&nbsp;=&gt;&nbsp;void)
1078e41f4b71Sopenharmony_ci
1079e41f4b71Sopenharmony_ci按下输入法回车键触发该回调。
1080e41f4b71Sopenharmony_ci
1081e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1082e41f4b71Sopenharmony_ci
1083e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1084e41f4b71Sopenharmony_ci
1085e41f4b71Sopenharmony_ci**参数:** 
1086e41f4b71Sopenharmony_ci
1087e41f4b71Sopenharmony_ci| 参数名              | 类型                                             | 必填 | 说明                                                         |
1088e41f4b71Sopenharmony_ci| ------------------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
1089e41f4b71Sopenharmony_ci| enterKey            | [EnterKeyType](ts-types.md#enterkeytype枚举说明) | 是   | 输入法回车键类型。 |
1090e41f4b71Sopenharmony_ci| event<sup>11+</sup> | [SubmitEvent](#submitevent11对象说明)         | 是   | 提交事件。                                                   |
1091e41f4b71Sopenharmony_ci
1092e41f4b71Sopenharmony_ci### onEditChanged<sup>(deprecated)</sup>
1093e41f4b71Sopenharmony_ci
1094e41f4b71Sopenharmony_cionEditChanged(callback:&nbsp;(isEditing:&nbsp;boolean)&nbsp;=&gt;&nbsp;void)
1095e41f4b71Sopenharmony_ci
1096e41f4b71Sopenharmony_ci输入状态变化时,触发该回调。
1097e41f4b71Sopenharmony_ci
1098e41f4b71Sopenharmony_ci从API 8开始废弃,建议使用onEditChange。
1099e41f4b71Sopenharmony_ci
1100e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1101e41f4b71Sopenharmony_ci
1102e41f4b71Sopenharmony_ci**参数:** 
1103e41f4b71Sopenharmony_ci
1104e41f4b71Sopenharmony_ci| 参数名    | 类型    | 必填 | 说明                 |
1105e41f4b71Sopenharmony_ci| --------- | ------- | ---- | -------------------- |
1106e41f4b71Sopenharmony_ci| isEditing | boolean | 是   | 为true表示正在输入。 |
1107e41f4b71Sopenharmony_ci
1108e41f4b71Sopenharmony_ci### onEditChange<sup>8+</sup>
1109e41f4b71Sopenharmony_ci
1110e41f4b71Sopenharmony_cionEditChange(callback:&nbsp;(isEditing:&nbsp;boolean)&nbsp;=&gt;&nbsp;void)
1111e41f4b71Sopenharmony_ci
1112e41f4b71Sopenharmony_ci输入状态变化时,触发该回调。有光标时为编辑态,无光标时为非编辑态。isEditing为true表示正在输入。
1113e41f4b71Sopenharmony_ci
1114e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1115e41f4b71Sopenharmony_ci
1116e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1117e41f4b71Sopenharmony_ci
1118e41f4b71Sopenharmony_ci**参数:** 
1119e41f4b71Sopenharmony_ci
1120e41f4b71Sopenharmony_ci| 参数名    | 类型    | 必填 | 说明                 |
1121e41f4b71Sopenharmony_ci| --------- | ------- | ---- | -------------------- |
1122e41f4b71Sopenharmony_ci| isEditing | boolean | 是   | 为true表示正在输入。 |
1123e41f4b71Sopenharmony_ci
1124e41f4b71Sopenharmony_ci### onCopy<sup>8+</sup>
1125e41f4b71Sopenharmony_ci
1126e41f4b71Sopenharmony_cionCopy(callback:&nbsp;(value:&nbsp;string)&nbsp;=&gt;&nbsp;void)
1127e41f4b71Sopenharmony_ci
1128e41f4b71Sopenharmony_ci进行复制操作时,触发该回调。
1129e41f4b71Sopenharmony_ci
1130e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1131e41f4b71Sopenharmony_ci
1132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1133e41f4b71Sopenharmony_ci
1134e41f4b71Sopenharmony_ci**参数:** 
1135e41f4b71Sopenharmony_ci
1136e41f4b71Sopenharmony_ci| 参数名    | 类型    | 必填 | 说明             |
1137e41f4b71Sopenharmony_ci| --------- | ------- | ---- | ---------------- |
1138e41f4b71Sopenharmony_ci| value | string | 是   | 复制的文本内容。 |
1139e41f4b71Sopenharmony_ci
1140e41f4b71Sopenharmony_ci### onCut<sup>8+</sup>
1141e41f4b71Sopenharmony_ci
1142e41f4b71Sopenharmony_cionCut(callback:&nbsp;(value:&nbsp;string)&nbsp;=&gt;&nbsp;void)
1143e41f4b71Sopenharmony_ci
1144e41f4b71Sopenharmony_ci进行剪切操作时,触发该回调。
1145e41f4b71Sopenharmony_ci
1146e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1147e41f4b71Sopenharmony_ci
1148e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1149e41f4b71Sopenharmony_ci
1150e41f4b71Sopenharmony_ci**参数:** 
1151e41f4b71Sopenharmony_ci
1152e41f4b71Sopenharmony_ci| 参数名    | 类型    | 必填 | 说明             |
1153e41f4b71Sopenharmony_ci| --------- | ------- | ---- | ---------------- |
1154e41f4b71Sopenharmony_ci| value | string | 是   | 剪切的文本内容。 |
1155e41f4b71Sopenharmony_ci
1156e41f4b71Sopenharmony_ci### onPaste<sup>8+</sup>
1157e41f4b71Sopenharmony_ci
1158e41f4b71Sopenharmony_cionPaste(callback:&nbsp;(value:&nbsp;string, event:&nbsp;PasteEvent)&nbsp;=&gt;&nbsp;void)
1159e41f4b71Sopenharmony_ci
1160e41f4b71Sopenharmony_ci进行粘贴操作时,触发该回调。
1161e41f4b71Sopenharmony_ci
1162e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1163e41f4b71Sopenharmony_ci
1164e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1165e41f4b71Sopenharmony_ci
1166e41f4b71Sopenharmony_ci**参数:** 
1167e41f4b71Sopenharmony_ci
1168e41f4b71Sopenharmony_ci| 参数名              | 类型                                                         | 必填 | 说明                   |
1169e41f4b71Sopenharmony_ci| ------------------- | ------------------------------------------------------------ | ---- | ---------------------- |
1170e41f4b71Sopenharmony_ci| value               | string                                                       | 是   | 粘贴的文本内容。       |
1171e41f4b71Sopenharmony_ci| event<sup>11+</sup> | [PasteEvent](ts-basic-components-richeditor.md#pasteevent11) | 是   | 用户自定义的粘贴事件。 |
1172e41f4b71Sopenharmony_ci
1173e41f4b71Sopenharmony_ci### onTextSelectionChange<sup>10+</sup>
1174e41f4b71Sopenharmony_ci
1175e41f4b71Sopenharmony_cionTextSelectionChange(callback: (selectionStart: number, selectionEnd: number) => void)
1176e41f4b71Sopenharmony_ci
1177e41f4b71Sopenharmony_ci文本选择的位置发生变化或编辑状态下光标位置发生变化时,触发该回调。
1178e41f4b71Sopenharmony_ci
1179e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1180e41f4b71Sopenharmony_ci
1181e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1182e41f4b71Sopenharmony_ci
1183e41f4b71Sopenharmony_ci**参数:** 
1184e41f4b71Sopenharmony_ci
1185e41f4b71Sopenharmony_ci| 参数名         | 类型   | 必填 | 说明                                    |
1186e41f4b71Sopenharmony_ci| -------------- | ------ | ---- | --------------------------------------- |
1187e41f4b71Sopenharmony_ci| selectionStart | number | 是   | 所选文本的起始位置,文字的起始位置为0。 |
1188e41f4b71Sopenharmony_ci| selectionEnd   | number | 是   | 所选文本的结束位置。                    |
1189e41f4b71Sopenharmony_ci
1190e41f4b71Sopenharmony_ci### onContentScroll<sup>10+</sup>
1191e41f4b71Sopenharmony_ci
1192e41f4b71Sopenharmony_cionContentScroll(callback: (totalOffsetX: number, totalOffsetY: number) => void)
1193e41f4b71Sopenharmony_ci
1194e41f4b71Sopenharmony_ci文本内容滚动时,触发该回调。
1195e41f4b71Sopenharmony_ci
1196e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1197e41f4b71Sopenharmony_ci
1198e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1199e41f4b71Sopenharmony_ci
1200e41f4b71Sopenharmony_ci**参数:** 
1201e41f4b71Sopenharmony_ci
1202e41f4b71Sopenharmony_ci| 参数名       | 类型   | 必填 | 说明                               |
1203e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---------------------------------- |
1204e41f4b71Sopenharmony_ci| totalOffsetX | number | 是   | 文本在内容区的横坐标偏移,单位px。 |
1205e41f4b71Sopenharmony_ci| totalOffsetY | number | 是   | 文本在内容区的纵坐标偏移,单位px。 |
1206e41f4b71Sopenharmony_ci
1207e41f4b71Sopenharmony_ci### onSecurityStateChange<sup>12+</sup>
1208e41f4b71Sopenharmony_ci
1209e41f4b71Sopenharmony_cionSecurityStateChange(callback: Callback\<boolean>)
1210e41f4b71Sopenharmony_ci
1211e41f4b71Sopenharmony_ci密码显隐状态切换时,触发该回调。
1212e41f4b71Sopenharmony_ci
1213e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1214e41f4b71Sopenharmony_ci
1215e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1216e41f4b71Sopenharmony_ci
1217e41f4b71Sopenharmony_ci**参数:** 
1218e41f4b71Sopenharmony_ci
1219e41f4b71Sopenharmony_ci| 参数名       | 类型   | 必填 | 说明                               |
1220e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---------------------------------- |
1221e41f4b71Sopenharmony_ci| callback | Callback\<boolean> | 是   | 回调函数。|
1222e41f4b71Sopenharmony_ci
1223e41f4b71Sopenharmony_ci### onWillInsert<sup>12+</sup>
1224e41f4b71Sopenharmony_ci
1225e41f4b71Sopenharmony_cionWillInsert(callback: Callback\<InsertValue, boolean>)
1226e41f4b71Sopenharmony_ci
1227e41f4b71Sopenharmony_ci在将要输入时,触发该回调。
1228e41f4b71Sopenharmony_ci
1229e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1230e41f4b71Sopenharmony_ci
1231e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1232e41f4b71Sopenharmony_ci
1233e41f4b71Sopenharmony_ci**参数:**
1234e41f4b71Sopenharmony_ci
1235e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
1236e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
1237e41f4b71Sopenharmony_ci| callback  | Callback\<[InsertValue](ts-text-common.md#insertvalue12对象说明), boolean> | 是   | 在将要输入时调用的回调。<br/>在返回true时,表示正常插入,返回false时,表示不插入。<br/>在预上屏操作时,该回调不触发。<br/>仅支持系统输入法输入的场景。 |
1238e41f4b71Sopenharmony_ci
1239e41f4b71Sopenharmony_ci### onDidInsert<sup>12+</sup>
1240e41f4b71Sopenharmony_ci
1241e41f4b71Sopenharmony_cionDidInsert(callback: Callback\<InsertValue>)
1242e41f4b71Sopenharmony_ci
1243e41f4b71Sopenharmony_ci在输入完成时,触发该回调。
1244e41f4b71Sopenharmony_ci
1245e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1246e41f4b71Sopenharmony_ci
1247e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1248e41f4b71Sopenharmony_ci
1249e41f4b71Sopenharmony_ci**参数:**
1250e41f4b71Sopenharmony_ci
1251e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
1252e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
1253e41f4b71Sopenharmony_ci| callback  | Callback\<[InsertValue](ts-text-common.md#insertvalue12对象说明)> | 是   | 在输入完成时调用的回调。<br/>仅支持系统输入法输入的场景。 |
1254e41f4b71Sopenharmony_ci
1255e41f4b71Sopenharmony_ci### onWillDelete<sup>12+</sup>
1256e41f4b71Sopenharmony_ci
1257e41f4b71Sopenharmony_cionWillDelete(callback: Callback\<DeleteValue, boolean>)
1258e41f4b71Sopenharmony_ci
1259e41f4b71Sopenharmony_ci在将要删除时,触发该回调。
1260e41f4b71Sopenharmony_ci
1261e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1262e41f4b71Sopenharmony_ci
1263e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1264e41f4b71Sopenharmony_ci
1265e41f4b71Sopenharmony_ci**参数:**
1266e41f4b71Sopenharmony_ci
1267e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
1268e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
1269e41f4b71Sopenharmony_ci| callback  | Callback\<[DeleteValue](ts-text-common.md#deletevalue12对象说明), boolean> | 是   | 在将要删除时调用的回调。<br/>在返回true时,表示正常删除,返回false时,表示不删除。<br/>在预上屏删除操作时,该回调不触发。<br/>仅支持系统输入法输入的场景。 |
1270e41f4b71Sopenharmony_ci
1271e41f4b71Sopenharmony_ci### onDidDelete<sup>12+</sup>
1272e41f4b71Sopenharmony_ci
1273e41f4b71Sopenharmony_cionDidDelete(callback: Callback\<DeleteValue>)
1274e41f4b71Sopenharmony_ci
1275e41f4b71Sopenharmony_ci在删除完成时,触发该回调。
1276e41f4b71Sopenharmony_ci
1277e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1278e41f4b71Sopenharmony_ci
1279e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1280e41f4b71Sopenharmony_ci
1281e41f4b71Sopenharmony_ci**参数:**
1282e41f4b71Sopenharmony_ci
1283e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
1284e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
1285e41f4b71Sopenharmony_ci| callback  | Callback\<[DeleteValue](ts-text-common.md#deletevalue12对象说明)> | 是   | 在删除完成时调用的回调。<br/>仅支持系统输入法输入的场景。 |
1286e41f4b71Sopenharmony_ci
1287e41f4b71Sopenharmony_ci## TextInputController<sup>8+</sup>
1288e41f4b71Sopenharmony_ci
1289e41f4b71Sopenharmony_ciTextInput组件的控制器继承自[TextContentControllerBase](ts-types.md#textcontentcontrollerbase10)。
1290e41f4b71Sopenharmony_ci
1291e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1292e41f4b71Sopenharmony_ci
1293e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1294e41f4b71Sopenharmony_ci
1295e41f4b71Sopenharmony_ci### 导入对象
1296e41f4b71Sopenharmony_ci```
1297e41f4b71Sopenharmony_cicontroller: TextInputController = new TextInputController()
1298e41f4b71Sopenharmony_ci```
1299e41f4b71Sopenharmony_ci
1300e41f4b71Sopenharmony_ci### constructor<sup>8+</sup>
1301e41f4b71Sopenharmony_ci
1302e41f4b71Sopenharmony_ciconstructor()
1303e41f4b71Sopenharmony_ci
1304e41f4b71Sopenharmony_ciTextInputController的构造函数。
1305e41f4b71Sopenharmony_ci
1306e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1307e41f4b71Sopenharmony_ci
1308e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1309e41f4b71Sopenharmony_ci
1310e41f4b71Sopenharmony_ci### caretPosition<sup>8+</sup>
1311e41f4b71Sopenharmony_ci
1312e41f4b71Sopenharmony_cicaretPosition(value:&nbsp;number): void
1313e41f4b71Sopenharmony_ci
1314e41f4b71Sopenharmony_ci设置输入光标的位置。
1315e41f4b71Sopenharmony_ci
1316e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1317e41f4b71Sopenharmony_ci
1318e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1319e41f4b71Sopenharmony_ci
1320e41f4b71Sopenharmony_ci**参数:**
1321e41f4b71Sopenharmony_ci
1322e41f4b71Sopenharmony_ci| 参数名   | 类型   | 必填   | 说明  |
1323e41f4b71Sopenharmony_ci| ----- | ------ | ---- | ------ |
1324e41f4b71Sopenharmony_ci| value | number | 是    | 从字符串开始到光标所在位置的字符长度。 |
1325e41f4b71Sopenharmony_ci### setTextSelection<sup>10+</sup>
1326e41f4b71Sopenharmony_ci
1327e41f4b71Sopenharmony_cisetTextSelection(selectionStart:&nbsp;number, selectionEnd:&nbsp;number, options?:&nbsp;SelectionOptions): void
1328e41f4b71Sopenharmony_ci
1329e41f4b71Sopenharmony_ci设置文本选择区域并高亮显示。
1330e41f4b71Sopenharmony_ci
1331e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1332e41f4b71Sopenharmony_ci
1333e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1334e41f4b71Sopenharmony_ci
1335e41f4b71Sopenharmony_ci**参数:**
1336e41f4b71Sopenharmony_ci
1337e41f4b71Sopenharmony_ci| 参数名  | 类型   | 必填   | 说明  |
1338e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ----- |
1339e41f4b71Sopenharmony_ci| selectionStart | number | 是    | 文本选择区域起始位置,文本框中文字的起始位置为0。 |
1340e41f4b71Sopenharmony_ci| selectionEnd   | number | 是    | 文本选择区域结束位置。 |
1341e41f4b71Sopenharmony_ci| options<sup>12+</sup>   | [SelectionOptions](ts-types.md#selectionoptions12对象说明) | 否    | 选中文字时的配置。<br />默认值:MenuPolicy.DEFAULT<br/>从API version 12开始,该接口中的options参数支持在原子化服务中使用。 |
1342e41f4b71Sopenharmony_ci
1343e41f4b71Sopenharmony_ci>  **说明:**
1344e41f4b71Sopenharmony_ci>
1345e41f4b71Sopenharmony_ci>  如果selectionStart或selectionEnd被赋值为undefined时,当作0处理。
1346e41f4b71Sopenharmony_ci>
1347e41f4b71Sopenharmony_ci>  如果selectionMenuHidden被赋值为true或设备为2in1时,即使options被赋值为MenuPolicy.SHOW,调用setTextSelection也不弹出菜单。
1348e41f4b71Sopenharmony_ci>
1349e41f4b71Sopenharmony_ci>  如果选中的文本含有emoji表情时,表情的起始位置包含在设置的文本选中区域内就会被选中。
1350e41f4b71Sopenharmony_ci
1351e41f4b71Sopenharmony_ci### stopEditing<sup>10+</sup>
1352e41f4b71Sopenharmony_ci
1353e41f4b71Sopenharmony_cistopEditing(): void
1354e41f4b71Sopenharmony_ci
1355e41f4b71Sopenharmony_ci退出编辑态。
1356e41f4b71Sopenharmony_ci
1357e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1358e41f4b71Sopenharmony_ci
1359e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1360e41f4b71Sopenharmony_ci
1361e41f4b71Sopenharmony_ci## UnderlineColor<sup>12+</sup>对象说明
1362e41f4b71Sopenharmony_ci
1363e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1364e41f4b71Sopenharmony_ci
1365e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1366e41f4b71Sopenharmony_ci
1367e41f4b71Sopenharmony_ci| 名称 | 类型  | 必填   | 说明 |
1368e41f4b71Sopenharmony_ci| ---- | ----- | ---- | ---- |
1369e41f4b71Sopenharmony_ci| typing  | [ResourceColor](ts-types.md#resourcecolor) \| undefined | 否   | 键入时下划线颜色。不填写、undefined、null、无效值时恢复默认。 |
1370e41f4b71Sopenharmony_ci| normal  | [ResourceColor](ts-types.md#resourcecolor) \| undefined | 否   | 非特殊状态时下划线颜色。不填写、undefined、null、无效值时恢复默认。 |
1371e41f4b71Sopenharmony_ci| error   | [ResourceColor](ts-types.md#resourcecolor) \| undefined | 否   | 错误时下划线颜色。不填写、undefined、null、无效值时恢复默认。此选项会修改showCounter属性中达到最大字符数时的颜色。 |
1372e41f4b71Sopenharmony_ci| disable | [ResourceColor](ts-types.md#resourcecolor) \| undefined | 否   | 禁用时下划线颜色。不填写、undefined、null、无效值时恢复默认。 |
1373e41f4b71Sopenharmony_ci
1374e41f4b71Sopenharmony_ci## SubmitEvent<sup>11+</sup>对象说明
1375e41f4b71Sopenharmony_ci
1376e41f4b71Sopenharmony_ci定义用户提交事件。
1377e41f4b71Sopenharmony_ci
1378e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1379e41f4b71Sopenharmony_ci
1380e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1381e41f4b71Sopenharmony_ci
1382e41f4b71Sopenharmony_ci### 属性
1383e41f4b71Sopenharmony_ci
1384e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1385e41f4b71Sopenharmony_ci
1386e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1387e41f4b71Sopenharmony_ci
1388e41f4b71Sopenharmony_ci| 名称 | 类型  | 必填   | 说明 |
1389e41f4b71Sopenharmony_ci| ---- | ----- | ---- | ---- |
1390e41f4b71Sopenharmony_ci| text              | string     | 是   | 输入框文本内容。                                   |
1391e41f4b71Sopenharmony_ci
1392e41f4b71Sopenharmony_ci### keepEditableState
1393e41f4b71Sopenharmony_ci
1394e41f4b71Sopenharmony_cikeepEditableState(): void
1395e41f4b71Sopenharmony_ci
1396e41f4b71Sopenharmony_ci用户自定义输入框编辑状态,调用时保持编辑态。
1397e41f4b71Sopenharmony_ci
1398e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1399e41f4b71Sopenharmony_ci
1400e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
1401e41f4b71Sopenharmony_ci
1402e41f4b71Sopenharmony_ci## 示例
1403e41f4b71Sopenharmony_ci
1404e41f4b71Sopenharmony_ci### 示例1
1405e41f4b71Sopenharmony_ciTextInput基本使用示例。
1406e41f4b71Sopenharmony_ci```ts
1407e41f4b71Sopenharmony_ci// xxx.ets
1408e41f4b71Sopenharmony_ci@Entry
1409e41f4b71Sopenharmony_ci@Component
1410e41f4b71Sopenharmony_cistruct TextInputExample {
1411e41f4b71Sopenharmony_ci  @State text: string = ''
1412e41f4b71Sopenharmony_ci  @State positionInfo: CaretOffset = { index: 0, x: 0, y: 0 }
1413e41f4b71Sopenharmony_ci  @State passwordState: boolean = false
1414e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1415e41f4b71Sopenharmony_ci
1416e41f4b71Sopenharmony_ci  build() {
1417e41f4b71Sopenharmony_ci    Column() {
1418e41f4b71Sopenharmony_ci      TextInput({ text: this.text, placeholder: 'input your word...', controller: this.controller })
1419e41f4b71Sopenharmony_ci        .placeholderColor(Color.Grey)
1420e41f4b71Sopenharmony_ci        .placeholderFont({ size: 14, weight: 400 })
1421e41f4b71Sopenharmony_ci        .caretColor(Color.Blue)
1422e41f4b71Sopenharmony_ci        .width('95%')
1423e41f4b71Sopenharmony_ci        .height(40)
1424e41f4b71Sopenharmony_ci        .margin(20)
1425e41f4b71Sopenharmony_ci        .fontSize(14)
1426e41f4b71Sopenharmony_ci        .fontColor(Color.Black)
1427e41f4b71Sopenharmony_ci        .inputFilter('[a-z]', (e) => {
1428e41f4b71Sopenharmony_ci          console.log(JSON.stringify(e))
1429e41f4b71Sopenharmony_ci        })
1430e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1431e41f4b71Sopenharmony_ci          this.text = value
1432e41f4b71Sopenharmony_ci        })
1433e41f4b71Sopenharmony_ci      Text(this.text)
1434e41f4b71Sopenharmony_ci      Button('Set caretPosition 1')
1435e41f4b71Sopenharmony_ci        .margin(15)
1436e41f4b71Sopenharmony_ci        .onClick(() => {
1437e41f4b71Sopenharmony_ci          // 将光标移动至第一个字符后
1438e41f4b71Sopenharmony_ci          this.controller.caretPosition(1)
1439e41f4b71Sopenharmony_ci        })
1440e41f4b71Sopenharmony_ci      Button('Get CaretOffset')
1441e41f4b71Sopenharmony_ci        .margin(15)
1442e41f4b71Sopenharmony_ci        .onClick(() => {
1443e41f4b71Sopenharmony_ci          this.positionInfo = this.controller.getCaretOffset()
1444e41f4b71Sopenharmony_ci        })
1445e41f4b71Sopenharmony_ci      // 密码输入框
1446e41f4b71Sopenharmony_ci      TextInput({ placeholder: 'input your password...' })
1447e41f4b71Sopenharmony_ci        .width('95%')
1448e41f4b71Sopenharmony_ci        .height(40)
1449e41f4b71Sopenharmony_ci        .margin(20)
1450e41f4b71Sopenharmony_ci        .type(InputType.Password)
1451e41f4b71Sopenharmony_ci        .maxLength(9)
1452e41f4b71Sopenharmony_ci        .showPasswordIcon(true)
1453e41f4b71Sopenharmony_ci        .showPassword(this.passwordState)
1454e41f4b71Sopenharmony_ci        .onSecurityStateChange(((isShowPassword: boolean) => {
1455e41f4b71Sopenharmony_ci          // 更新密码显示状态
1456e41f4b71Sopenharmony_ci          console.info('isShowPassword',isShowPassword)
1457e41f4b71Sopenharmony_ci          this.passwordState = isShowPassword
1458e41f4b71Sopenharmony_ci        }))
1459e41f4b71Sopenharmony_ci      // 邮箱地址自动填充类型
1460e41f4b71Sopenharmony_ci      TextInput({ placeholder: 'input your email...' })
1461e41f4b71Sopenharmony_ci        .width('95%')
1462e41f4b71Sopenharmony_ci        .height(40)
1463e41f4b71Sopenharmony_ci        .margin(20)
1464e41f4b71Sopenharmony_ci        .contentType(ContentType.EMAIL_ADDRESS)
1465e41f4b71Sopenharmony_ci        .maxLength(9)
1466e41f4b71Sopenharmony_ci      // 内联风格输入框
1467e41f4b71Sopenharmony_ci      TextInput({ text: 'inline style' })
1468e41f4b71Sopenharmony_ci        .width('95%')
1469e41f4b71Sopenharmony_ci        .height(50)
1470e41f4b71Sopenharmony_ci        .margin(20)
1471e41f4b71Sopenharmony_ci        .borderRadius(0)
1472e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline)
1473e41f4b71Sopenharmony_ci    }.width('100%')
1474e41f4b71Sopenharmony_ci  }
1475e41f4b71Sopenharmony_ci}
1476e41f4b71Sopenharmony_ci```
1477e41f4b71Sopenharmony_ci
1478e41f4b71Sopenharmony_ci![TextInput](figures/TextInput.png)
1479e41f4b71Sopenharmony_ci
1480e41f4b71Sopenharmony_ci### 示例2
1481e41f4b71Sopenharmony_cipasswordIcon、showUnderline、showUnit、showError属性接口使用示例。
1482e41f4b71Sopenharmony_ci```ts
1483e41f4b71Sopenharmony_ci@Entry
1484e41f4b71Sopenharmony_ci@Component
1485e41f4b71Sopenharmony_cistruct TextInputExample {
1486e41f4b71Sopenharmony_ci  @State passWordSrc1: Resource = $r('app.media.onIcon')
1487e41f4b71Sopenharmony_ci  @State passWordSrc2: Resource = $r('app.media.offIcon')
1488e41f4b71Sopenharmony_ci  @State textError: string = ''
1489e41f4b71Sopenharmony_ci  @State text: string = ''
1490e41f4b71Sopenharmony_ci  @State nameText: string = 'test'
1491e41f4b71Sopenharmony_ci
1492e41f4b71Sopenharmony_ci  @Builder itemEnd() {
1493e41f4b71Sopenharmony_ci    Select([{ value: 'KB' },
1494e41f4b71Sopenharmony_ci      { value: 'MB' },
1495e41f4b71Sopenharmony_ci      { value: 'GB' },
1496e41f4b71Sopenharmony_ci      { value: 'TB', }])
1497e41f4b71Sopenharmony_ci      .height("48vp")
1498e41f4b71Sopenharmony_ci      .borderRadius(0)
1499e41f4b71Sopenharmony_ci      .selected(2)
1500e41f4b71Sopenharmony_ci      .align(Alignment.Center)
1501e41f4b71Sopenharmony_ci      .value('MB')
1502e41f4b71Sopenharmony_ci      .font({ size: 20, weight: 500 })
1503e41f4b71Sopenharmony_ci      .fontColor('#182431')
1504e41f4b71Sopenharmony_ci      .selectedOptionFont({ size: 20, weight: 400 })
1505e41f4b71Sopenharmony_ci      .optionFont({ size: 20, weight: 400 })
1506e41f4b71Sopenharmony_ci      .backgroundColor(Color.Transparent)
1507e41f4b71Sopenharmony_ci      .responseRegion({ height: "40vp", width: "80%", x: '10%', y: '6vp' })
1508e41f4b71Sopenharmony_ci      .onSelect((index: number) => {
1509e41f4b71Sopenharmony_ci        console.info('Select:' + index)
1510e41f4b71Sopenharmony_ci      })
1511e41f4b71Sopenharmony_ci  }
1512e41f4b71Sopenharmony_ci
1513e41f4b71Sopenharmony_ci  build() {
1514e41f4b71Sopenharmony_ci    Column({ space: 20 }) {
1515e41f4b71Sopenharmony_ci      // 自定义密码显示图标
1516e41f4b71Sopenharmony_ci      TextInput({ placeholder: 'user define password icon' })
1517e41f4b71Sopenharmony_ci        .type(InputType.Password)
1518e41f4b71Sopenharmony_ci        .width(380)
1519e41f4b71Sopenharmony_ci        .height(60)
1520e41f4b71Sopenharmony_ci        .passwordIcon({ onIconSrc: this.passWordSrc1, offIconSrc: this.passWordSrc2 })
1521e41f4b71Sopenharmony_ci      // 下划线模式
1522e41f4b71Sopenharmony_ci      TextInput({ placeholder: 'underline style' })
1523e41f4b71Sopenharmony_ci        .showUnderline(true)
1524e41f4b71Sopenharmony_ci        .width(380)
1525e41f4b71Sopenharmony_ci        .height(60)
1526e41f4b71Sopenharmony_ci        .showError('Error')
1527e41f4b71Sopenharmony_ci        .showUnit(this.itemEnd)
1528e41f4b71Sopenharmony_ci
1529e41f4b71Sopenharmony_ci      Text(`用户名:${this.text}`)
1530e41f4b71Sopenharmony_ci        .width('95%')
1531e41f4b71Sopenharmony_ci      TextInput({ placeholder: '请输入用户名', text: this.text })
1532e41f4b71Sopenharmony_ci        .showUnderline(true)
1533e41f4b71Sopenharmony_ci        .width(380)
1534e41f4b71Sopenharmony_ci        .showError(this.textError)
1535e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1536e41f4b71Sopenharmony_ci          this.text = value
1537e41f4b71Sopenharmony_ci        })
1538e41f4b71Sopenharmony_ci        .onSubmit((enterKey: EnterKeyType, event: SubmitEvent) => {
1539e41f4b71Sopenharmony_ci          // 用户名不正确会清空输入框和用户名并提示错误文本
1540e41f4b71Sopenharmony_ci          if (this.text == this.nameText) {
1541e41f4b71Sopenharmony_ci            this.textError = ''
1542e41f4b71Sopenharmony_ci          } else {
1543e41f4b71Sopenharmony_ci            this.textError = '用户名输入错误'
1544e41f4b71Sopenharmony_ci            this.text = ''
1545e41f4b71Sopenharmony_ci            // 调用keepEditableState方法,输入框保持编辑态
1546e41f4b71Sopenharmony_ci            event.keepEditableState()
1547e41f4b71Sopenharmony_ci          }
1548e41f4b71Sopenharmony_ci        })
1549e41f4b71Sopenharmony_ci
1550e41f4b71Sopenharmony_ci    }.width('100%')
1551e41f4b71Sopenharmony_ci  }
1552e41f4b71Sopenharmony_ci}
1553e41f4b71Sopenharmony_ci```
1554e41f4b71Sopenharmony_ci
1555e41f4b71Sopenharmony_ci![TextInputError](figures/TextInputError.png)
1556e41f4b71Sopenharmony_ci
1557e41f4b71Sopenharmony_ci### 示例3
1558e41f4b71Sopenharmony_ciTextInput绑定自定义键盘使用示例。
1559e41f4b71Sopenharmony_ci```ts
1560e41f4b71Sopenharmony_ci// xxx.ets
1561e41f4b71Sopenharmony_ci@Entry
1562e41f4b71Sopenharmony_ci@Component
1563e41f4b71Sopenharmony_cistruct TextInputExample {
1564e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1565e41f4b71Sopenharmony_ci  @State inputValue: string = ""
1566e41f4b71Sopenharmony_ci
1567e41f4b71Sopenharmony_ci  // 自定义键盘组件
1568e41f4b71Sopenharmony_ci  @Builder CustomKeyboardBuilder() {
1569e41f4b71Sopenharmony_ci    Column() {
1570e41f4b71Sopenharmony_ci      Button('x').onClick(() => {
1571e41f4b71Sopenharmony_ci        // 关闭自定义键盘
1572e41f4b71Sopenharmony_ci        this.controller.stopEditing()
1573e41f4b71Sopenharmony_ci      })
1574e41f4b71Sopenharmony_ci      Grid() {
1575e41f4b71Sopenharmony_ci        ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'], (item:number|string) => {
1576e41f4b71Sopenharmony_ci          GridItem() {
1577e41f4b71Sopenharmony_ci            Button(item + "")
1578e41f4b71Sopenharmony_ci              .width(110).onClick(() => {
1579e41f4b71Sopenharmony_ci              this.inputValue += item
1580e41f4b71Sopenharmony_ci            })
1581e41f4b71Sopenharmony_ci          }
1582e41f4b71Sopenharmony_ci        })
1583e41f4b71Sopenharmony_ci      }.maxCount(3).columnsGap(10).rowsGap(10).padding(5)
1584e41f4b71Sopenharmony_ci    }.backgroundColor(Color.Gray)
1585e41f4b71Sopenharmony_ci  }
1586e41f4b71Sopenharmony_ci
1587e41f4b71Sopenharmony_ci  build() {
1588e41f4b71Sopenharmony_ci    Column() {
1589e41f4b71Sopenharmony_ci      TextInput({ controller: this.controller, text: this.inputValue })
1590e41f4b71Sopenharmony_ci        // 绑定自定义键盘
1591e41f4b71Sopenharmony_ci        .customKeyboard(this.CustomKeyboardBuilder()).margin(10).border({ width: 1 }).height('48vp')
1592e41f4b71Sopenharmony_ci    }
1593e41f4b71Sopenharmony_ci  }
1594e41f4b71Sopenharmony_ci}
1595e41f4b71Sopenharmony_ci```
1596e41f4b71Sopenharmony_ci
1597e41f4b71Sopenharmony_ci![customKeyboard](figures/textInputCustomKeyboard.png)
1598e41f4b71Sopenharmony_ci
1599e41f4b71Sopenharmony_ci
1600e41f4b71Sopenharmony_ci### 示例4
1601e41f4b71Sopenharmony_cicancelButton属性接口使用示例。
1602e41f4b71Sopenharmony_ci```ts
1603e41f4b71Sopenharmony_ci// xxx.ets
1604e41f4b71Sopenharmony_ci@Entry
1605e41f4b71Sopenharmony_ci@Component
1606e41f4b71Sopenharmony_cistruct ClearNodeExample {
1607e41f4b71Sopenharmony_ci  @State text: string = ''
1608e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1609e41f4b71Sopenharmony_ci
1610e41f4b71Sopenharmony_ci  build() {
1611e41f4b71Sopenharmony_ci    Column() {
1612e41f4b71Sopenharmony_ci      TextInput({ placeholder: 'input ...', controller: this.controller })
1613e41f4b71Sopenharmony_ci        .width(380)
1614e41f4b71Sopenharmony_ci        .height(60)
1615e41f4b71Sopenharmony_ci        .cancelButton({
1616e41f4b71Sopenharmony_ci          style: CancelButtonStyle.CONSTANT,
1617e41f4b71Sopenharmony_ci          icon: {
1618e41f4b71Sopenharmony_ci            size: 45,
1619e41f4b71Sopenharmony_ci            src: $r('app.media.icon'),
1620e41f4b71Sopenharmony_ci            color: Color.Blue
1621e41f4b71Sopenharmony_ci          }
1622e41f4b71Sopenharmony_ci        })
1623e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1624e41f4b71Sopenharmony_ci          this.text = value
1625e41f4b71Sopenharmony_ci        })
1626e41f4b71Sopenharmony_ci    }
1627e41f4b71Sopenharmony_ci  }
1628e41f4b71Sopenharmony_ci}
1629e41f4b71Sopenharmony_ci```
1630e41f4b71Sopenharmony_ci
1631e41f4b71Sopenharmony_ci![cancelButton](figures/TextInputCancelButton.png)
1632e41f4b71Sopenharmony_ci
1633e41f4b71Sopenharmony_ci### 示例5
1634e41f4b71Sopenharmony_ciTextInput计数器使用示例。
1635e41f4b71Sopenharmony_ci```ts
1636e41f4b71Sopenharmony_ci// xxx.ets
1637e41f4b71Sopenharmony_ci@Entry
1638e41f4b71Sopenharmony_ci@Component
1639e41f4b71Sopenharmony_cistruct TextInputExample {
1640e41f4b71Sopenharmony_ci  @State text: string = ''
1641e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1642e41f4b71Sopenharmony_ci
1643e41f4b71Sopenharmony_ci  build() {
1644e41f4b71Sopenharmony_ci    Column() {
1645e41f4b71Sopenharmony_ci      TextInput({ text: this.text, controller: this.controller })
1646e41f4b71Sopenharmony_ci        .placeholderFont({ size: 16, weight: 400 })
1647e41f4b71Sopenharmony_ci        .width(336)
1648e41f4b71Sopenharmony_ci        .height(56)
1649e41f4b71Sopenharmony_ci        .maxLength(6)
1650e41f4b71Sopenharmony_ci        .showUnderline(true)
1651e41f4b71Sopenharmony_ci		.showCounter(true, { thresholdPercentage: 50, highlightBorder: true })
1652e41f4b71Sopenharmony_ci		//计数器显示效果为用户当前输入字符数/最大字符限制数。最大字符限制数通过maxLength()接口设置。
1653e41f4b71Sopenharmony_ci        //如果用户当前输入字符数达到最大字符限制乘50%(thresholdPercentage)。字符计数器显示。
1654e41f4b71Sopenharmony_ci        //用户设置highlightBorder为false时,配置取消红色边框。不设置此参数时,默认为true。
1655e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1656e41f4b71Sopenharmony_ci          this.text = value
1657e41f4b71Sopenharmony_ci        })
1658e41f4b71Sopenharmony_ci    }.width('100%').height('100%').backgroundColor('#F1F3F5')
1659e41f4b71Sopenharmony_ci  }
1660e41f4b71Sopenharmony_ci}
1661e41f4b71Sopenharmony_ci```
1662e41f4b71Sopenharmony_ci
1663e41f4b71Sopenharmony_ci![TextInputCounter](figures/TextInputShowCounter.jpg)
1664e41f4b71Sopenharmony_ci
1665e41f4b71Sopenharmony_ci
1666e41f4b71Sopenharmony_ci### 示例6
1667e41f4b71Sopenharmony_ci本示例展示如何在TextInput上将电话号码格式化为XXX XXXX XXXX。
1668e41f4b71Sopenharmony_ci
1669e41f4b71Sopenharmony_ci```ts
1670e41f4b71Sopenharmony_ci@Entry
1671e41f4b71Sopenharmony_ci@Component
1672e41f4b71Sopenharmony_cistruct TextInputExample {
1673e41f4b71Sopenharmony_ci  @State submitValue: string = ''
1674e41f4b71Sopenharmony_ci  @State text: string = ''
1675e41f4b71Sopenharmony_ci  public readonly NUM_TEXT_MAXSIZE_LENGTH = 13
1676e41f4b71Sopenharmony_ci  @State teleNumberNoSpace: string = ""
1677e41f4b71Sopenharmony_ci  @State nextCaret: number = -1 // 用于记录下次光标设置的位置
1678e41f4b71Sopenharmony_ci  @State actualCh: number = -1 // 用于记录光标在第i个数字后插入或者第i个数字前删除
1679e41f4b71Sopenharmony_ci  @State lastCaretPosition: number = 0
1680e41f4b71Sopenharmony_ci  @State lastCaretPositionEnd: number = 0
1681e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1682e41f4b71Sopenharmony_ci
1683e41f4b71Sopenharmony_ci  isEmpty(str?: string): boolean {
1684e41f4b71Sopenharmony_ci    return str == 'undefined' || !str || !new RegExp("[^\\s]").test(str)
1685e41f4b71Sopenharmony_ci  }
1686e41f4b71Sopenharmony_ci
1687e41f4b71Sopenharmony_ci  checkNeedNumberSpace(numText: string) {
1688e41f4b71Sopenharmony_ci    let isSpace: RegExp = new RegExp('[\\+;,#\\*]', 'g')
1689e41f4b71Sopenharmony_ci    let isRule: RegExp = new RegExp('^\\+.*')
1690e41f4b71Sopenharmony_ci
1691e41f4b71Sopenharmony_ci    if (isSpace.test(numText)) {
1692e41f4b71Sopenharmony_ci      // 如果电话号码里有特殊字符,就不加空格
1693e41f4b71Sopenharmony_ci      if (isRule.test(numText)) {
1694e41f4b71Sopenharmony_ci        return true
1695e41f4b71Sopenharmony_ci      } else {
1696e41f4b71Sopenharmony_ci        return false
1697e41f4b71Sopenharmony_ci      }
1698e41f4b71Sopenharmony_ci    }
1699e41f4b71Sopenharmony_ci    return true;
1700e41f4b71Sopenharmony_ci  }
1701e41f4b71Sopenharmony_ci
1702e41f4b71Sopenharmony_ci  removeSpace(str: string): string {
1703e41f4b71Sopenharmony_ci    if (this.isEmpty(str)) {
1704e41f4b71Sopenharmony_ci      return ''
1705e41f4b71Sopenharmony_ci    }
1706e41f4b71Sopenharmony_ci    return str.replace(new RegExp("[\\s]", "g"), '')
1707e41f4b71Sopenharmony_ci  }
1708e41f4b71Sopenharmony_ci
1709e41f4b71Sopenharmony_ci  setCaret() {
1710e41f4b71Sopenharmony_ci    if (this.nextCaret != -1) {
1711e41f4b71Sopenharmony_ci      console.log("to keep caret position right, change caret to", this.nextCaret)
1712e41f4b71Sopenharmony_ci      this.controller.caretPosition(this.nextCaret)
1713e41f4b71Sopenharmony_ci      this.nextCaret = -1
1714e41f4b71Sopenharmony_ci    }
1715e41f4b71Sopenharmony_ci  }
1716e41f4b71Sopenharmony_ci
1717e41f4b71Sopenharmony_ci  calcCaretPosition(nextText: string) {
1718e41f4b71Sopenharmony_ci    let befNumberNoSpace: string = this.removeSpace(this.text)
1719e41f4b71Sopenharmony_ci    this.actualCh = 0
1720e41f4b71Sopenharmony_ci    if (befNumberNoSpace.length < this.teleNumberNoSpace.length) { // 插入场景
1721e41f4b71Sopenharmony_ci      for (let i = 0; i < this.lastCaretPosition; i++) {
1722e41f4b71Sopenharmony_ci        if (this.text[i] != ' ') {
1723e41f4b71Sopenharmony_ci          this.actualCh += 1
1724e41f4b71Sopenharmony_ci        }
1725e41f4b71Sopenharmony_ci      }
1726e41f4b71Sopenharmony_ci      this.actualCh += this.teleNumberNoSpace.length - befNumberNoSpace.length
1727e41f4b71Sopenharmony_ci      console.log("actualCh: " + this.actualCh)
1728e41f4b71Sopenharmony_ci      for (let i = 0; i < nextText.length; i++) {
1729e41f4b71Sopenharmony_ci        if (nextText[i] != ' ') {
1730e41f4b71Sopenharmony_ci          this.actualCh -= 1
1731e41f4b71Sopenharmony_ci          if (this.actualCh <= 0) {
1732e41f4b71Sopenharmony_ci            this.nextCaret = i + 1
1733e41f4b71Sopenharmony_ci            break;
1734e41f4b71Sopenharmony_ci          }
1735e41f4b71Sopenharmony_ci        }
1736e41f4b71Sopenharmony_ci      }
1737e41f4b71Sopenharmony_ci    } else if (befNumberNoSpace.length > this.teleNumberNoSpace.length) { // 删除场景
1738e41f4b71Sopenharmony_ci      if (this.lastCaretPosition === this.text.length) {
1739e41f4b71Sopenharmony_ci        console.log("Caret at last, no need to change")
1740e41f4b71Sopenharmony_ci      } else if (this.lastCaretPosition === this.lastCaretPositionEnd) {
1741e41f4b71Sopenharmony_ci        // 按键盘上回退键一个一个删的情况
1742e41f4b71Sopenharmony_ci        for (let i = this.lastCaretPosition; i < this.text.length; i++) {
1743e41f4b71Sopenharmony_ci          if (this.text[i] != ' ') {
1744e41f4b71Sopenharmony_ci            this.actualCh += 1
1745e41f4b71Sopenharmony_ci          }
1746e41f4b71Sopenharmony_ci        }
1747e41f4b71Sopenharmony_ci        for (let i = nextText.length - 1; i >= 0; i--) {
1748e41f4b71Sopenharmony_ci          if (nextText[i] != ' ') {
1749e41f4b71Sopenharmony_ci            this.actualCh -= 1
1750e41f4b71Sopenharmony_ci            if (this.actualCh <= 0) {
1751e41f4b71Sopenharmony_ci              this.nextCaret = i
1752e41f4b71Sopenharmony_ci              break;
1753e41f4b71Sopenharmony_ci            }
1754e41f4b71Sopenharmony_ci          }
1755e41f4b71Sopenharmony_ci        }
1756e41f4b71Sopenharmony_ci      } else {
1757e41f4b71Sopenharmony_ci        // 剪切/手柄选择 一次删多个字符
1758e41f4b71Sopenharmony_ci        this.nextCaret = this.lastCaretPosition // 保持光标位置
1759e41f4b71Sopenharmony_ci      }
1760e41f4b71Sopenharmony_ci    }
1761e41f4b71Sopenharmony_ci  }
1762e41f4b71Sopenharmony_ci
1763e41f4b71Sopenharmony_ci  build() {
1764e41f4b71Sopenharmony_ci    Column() {
1765e41f4b71Sopenharmony_ci      Row() {
1766e41f4b71Sopenharmony_ci        TextInput({ text: `${this.text}`, controller: this.controller }).type(InputType.PhoneNumber).height('48vp')
1767e41f4b71Sopenharmony_ci          .onChange((number: string) => {
1768e41f4b71Sopenharmony_ci            this.teleNumberNoSpace = this.removeSpace(number);
1769e41f4b71Sopenharmony_ci            let nextText: string = ""
1770e41f4b71Sopenharmony_ci            if (this.teleNumberNoSpace.length > this.NUM_TEXT_MAXSIZE_LENGTH - 2) {
1771e41f4b71Sopenharmony_ci              nextText = this.teleNumberNoSpace
1772e41f4b71Sopenharmony_ci            } else if (this.checkNeedNumberSpace(number)) {
1773e41f4b71Sopenharmony_ci              if (this.teleNumberNoSpace.length <= 3) {
1774e41f4b71Sopenharmony_ci                nextText = this.teleNumberNoSpace
1775e41f4b71Sopenharmony_ci              } else {
1776e41f4b71Sopenharmony_ci                let split1: string = this.teleNumberNoSpace.substring(0, 3)
1777e41f4b71Sopenharmony_ci                let split2: string = this.teleNumberNoSpace.substring(3)
1778e41f4b71Sopenharmony_ci                nextText = split1 + ' ' + split2
1779e41f4b71Sopenharmony_ci                if (this.teleNumberNoSpace.length > 7) {
1780e41f4b71Sopenharmony_ci                  split2 = this.teleNumberNoSpace.substring(3, 7)
1781e41f4b71Sopenharmony_ci                  let split3: string = this.teleNumberNoSpace.substring(7)
1782e41f4b71Sopenharmony_ci                  nextText = split1 + ' ' + split2 + ' ' + split3
1783e41f4b71Sopenharmony_ci                }
1784e41f4b71Sopenharmony_ci              }
1785e41f4b71Sopenharmony_ci            } else {
1786e41f4b71Sopenharmony_ci              nextText = number
1787e41f4b71Sopenharmony_ci            }
1788e41f4b71Sopenharmony_ci            console.log("onChange Triggered:" + this.text + "|" + nextText + "|" + number)
1789e41f4b71Sopenharmony_ci            if (this.text === nextText && nextText === number) {
1790e41f4b71Sopenharmony_ci              // 此时说明数字已经格式化完成了 在这个时候改变光标位置不会被重置掉
1791e41f4b71Sopenharmony_ci              this.setCaret()
1792e41f4b71Sopenharmony_ci            } else {
1793e41f4b71Sopenharmony_ci              this.calcCaretPosition(nextText)
1794e41f4b71Sopenharmony_ci            }
1795e41f4b71Sopenharmony_ci            this.text = nextText
1796e41f4b71Sopenharmony_ci          })
1797e41f4b71Sopenharmony_ci          .onTextSelectionChange((selectionStart, selectionEnd) => {
1798e41f4b71Sopenharmony_ci            // 记录光标位置
1799e41f4b71Sopenharmony_ci            console.log("selection change: ", selectionStart, selectionEnd)
1800e41f4b71Sopenharmony_ci            this.lastCaretPosition = selectionStart
1801e41f4b71Sopenharmony_ci            this.lastCaretPositionEnd = selectionEnd
1802e41f4b71Sopenharmony_ci          })
1803e41f4b71Sopenharmony_ci      }
1804e41f4b71Sopenharmony_ci    }
1805e41f4b71Sopenharmony_ci    .width('100%')
1806e41f4b71Sopenharmony_ci    .height("100%")
1807e41f4b71Sopenharmony_ci  }
1808e41f4b71Sopenharmony_ci}
1809e41f4b71Sopenharmony_ci```
1810e41f4b71Sopenharmony_ci![phone_example](figures/phone_number.PNG)
1811e41f4b71Sopenharmony_ci
1812e41f4b71Sopenharmony_ci### 示例7
1813e41f4b71Sopenharmony_ci
1814e41f4b71Sopenharmony_ci本示例展示如何在下划线开启时,设置下划线颜色。
1815e41f4b71Sopenharmony_ci
1816e41f4b71Sopenharmony_ci```ts
1817e41f4b71Sopenharmony_ci@Entry
1818e41f4b71Sopenharmony_ci@Component
1819e41f4b71Sopenharmony_cistruct Index {
1820e41f4b71Sopenharmony_ci  build() {
1821e41f4b71Sopenharmony_ci    Row() {
1822e41f4b71Sopenharmony_ci      Column() {
1823e41f4b71Sopenharmony_ci        TextInput({ placeholder: '提示文本内容' })
1824e41f4b71Sopenharmony_ci          .showUnderline(true)
1825e41f4b71Sopenharmony_ci          .underlineColor({
1826e41f4b71Sopenharmony_ci            normal: Color.Orange,
1827e41f4b71Sopenharmony_ci            typing: Color.Green,
1828e41f4b71Sopenharmony_ci            error: Color.Red,
1829e41f4b71Sopenharmony_ci            disable: Color.Gray
1830e41f4b71Sopenharmony_ci          });
1831e41f4b71Sopenharmony_ci        TextInput({ placeholder: '提示文本内容' })
1832e41f4b71Sopenharmony_ci          .showUnderline(true)
1833e41f4b71Sopenharmony_ci          .underlineColor(Color.Gray);
1834e41f4b71Sopenharmony_ci      }
1835e41f4b71Sopenharmony_ci      .width('100%')
1836e41f4b71Sopenharmony_ci    }
1837e41f4b71Sopenharmony_ci    .height('100%')
1838e41f4b71Sopenharmony_ci  }
1839e41f4b71Sopenharmony_ci}
1840e41f4b71Sopenharmony_ci```
1841e41f4b71Sopenharmony_ci
1842e41f4b71Sopenharmony_ci![UnderlineColor](figures/UnderlineColor.png)
1843e41f4b71Sopenharmony_ci
1844e41f4b71Sopenharmony_ci
1845e41f4b71Sopenharmony_ci### 示例8
1846e41f4b71Sopenharmony_ci示例展示设置不同wordBreak属性的TextInput样式。
1847e41f4b71Sopenharmony_ci
1848e41f4b71Sopenharmony_ci```ts
1849e41f4b71Sopenharmony_ci// xxx.ets
1850e41f4b71Sopenharmony_ci@Entry
1851e41f4b71Sopenharmony_ci@Component
1852e41f4b71Sopenharmony_cistruct TextInputExample {
1853e41f4b71Sopenharmony_ci  build() {
1854e41f4b71Sopenharmony_ci    Column() {
1855e41f4b71Sopenharmony_ci      Text("TextInput为inline模式,WordBreakType属性为NORMAL的样式:").fontSize(16).fontColor(0xFF0000)
1856e41f4b71Sopenharmony_ci      TextInput({
1857e41f4b71Sopenharmony_ci        text: 'This is set wordBreak to WordBreak text Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu.'
1858e41f4b71Sopenharmony_ci      })
1859e41f4b71Sopenharmony_ci        .fontSize(16)
1860e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline) // Inline模式
1861e41f4b71Sopenharmony_ci        .wordBreak(WordBreak.NORMAL) // 非Inline模式该属性无效
1862e41f4b71Sopenharmony_ci
1863e41f4b71Sopenharmony_ci      Text("TextInput为inline模式,英文文本,WordBreakType属性为BREAK_ALL的样式:").fontSize(16).fontColor(0xFF0000)
1864e41f4b71Sopenharmony_ci      TextInput({
1865e41f4b71Sopenharmony_ci        text: 'This is set wordBreak to WordBreak text Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu.'
1866e41f4b71Sopenharmony_ci      })
1867e41f4b71Sopenharmony_ci        .fontSize(16)
1868e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline)
1869e41f4b71Sopenharmony_ci        .wordBreak(WordBreak.BREAK_ALL)
1870e41f4b71Sopenharmony_ci
1871e41f4b71Sopenharmony_ci      Text("TextInput为inline模式,中文文本,WordBreakType属性为BREAK_ALL的样式:").fontSize(16).fontColor(0xFF0000)
1872e41f4b71Sopenharmony_ci      TextInput({
1873e41f4b71Sopenharmony_ci        text: '多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示。\n高度未设置时,组件无默认高度,自适应内容高度。宽度未设置时,默认撑满最大宽度。'
1874e41f4b71Sopenharmony_ci      })
1875e41f4b71Sopenharmony_ci        .fontSize(16)
1876e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline)
1877e41f4b71Sopenharmony_ci        .wordBreak(WordBreak.BREAK_ALL)
1878e41f4b71Sopenharmony_ci
1879e41f4b71Sopenharmony_ci      Text("TextInput为inline模式,WordBreakType属性为BREAK_WORD的样式:").fontSize(16).fontColor(0xFF0000)
1880e41f4b71Sopenharmony_ci      TextInput({
1881e41f4b71Sopenharmony_ci        text: 'This is set wordBreak to WordBreak text Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu.'
1882e41f4b71Sopenharmony_ci      })
1883e41f4b71Sopenharmony_ci        .fontSize(16)
1884e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline)
1885e41f4b71Sopenharmony_ci        .wordBreak(WordBreak.BREAK_WORD)
1886e41f4b71Sopenharmony_ci    }
1887e41f4b71Sopenharmony_ci  }
1888e41f4b71Sopenharmony_ci}
1889e41f4b71Sopenharmony_ci```
1890e41f4b71Sopenharmony_ci![TextInputWordBreak](figures/TextInputWordBreak.jpeg)
1891e41f4b71Sopenharmony_ci
1892e41f4b71Sopenharmony_ci### 示例9
1893e41f4b71Sopenharmony_ci
1894e41f4b71Sopenharmony_ci该示例实现了使用lineHeight设置文本的文本行高,使用letterSpacing设置文本字符间距,使用decoration设置文本装饰线样式。
1895e41f4b71Sopenharmony_ci
1896e41f4b71Sopenharmony_ci```ts
1897e41f4b71Sopenharmony_ci@Entry
1898e41f4b71Sopenharmony_ci@Component
1899e41f4b71Sopenharmony_cistruct TextInputExample {
1900e41f4b71Sopenharmony_ci  build() {
1901e41f4b71Sopenharmony_ci    Row() {
1902e41f4b71Sopenharmony_ci      Column() {
1903e41f4b71Sopenharmony_ci        Text('lineHeight').fontSize(9).fontColor(0xCCCCCC)
1904e41f4b71Sopenharmony_ci        TextInput({text: 'lineHeight unset'})
1905e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10).margin(5)
1906e41f4b71Sopenharmony_ci        TextInput({text: 'lineHeight 15'})
1907e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10).margin(5).lineHeight(15)
1908e41f4b71Sopenharmony_ci        TextInput({text: 'lineHeight 30'})
1909e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10).margin(5).lineHeight(30)
1910e41f4b71Sopenharmony_ci
1911e41f4b71Sopenharmony_ci        Text('letterSpacing').fontSize(9).fontColor(0xCCCCCC)
1912e41f4b71Sopenharmony_ci        TextInput({text: 'letterSpacing 0'})
1913e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5).letterSpacing(0)
1914e41f4b71Sopenharmony_ci        TextInput({text: 'letterSpacing 3'})
1915e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5).letterSpacing(3)
1916e41f4b71Sopenharmony_ci        TextInput({text: 'letterSpacing -1'})
1917e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5).letterSpacing(-1)
1918e41f4b71Sopenharmony_ci
1919e41f4b71Sopenharmony_ci        Text('decoration').fontSize(9).fontColor(0xCCCCCC)
1920e41f4b71Sopenharmony_ci        TextInput({text: 'LineThrough, Red'})
1921e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5)
1922e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.LineThrough, color: Color.Red})
1923e41f4b71Sopenharmony_ci        TextInput({text: 'Overline, Red, DASHED'})
1924e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5)
1925e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.Overline, color: Color.Red, style: TextDecorationStyle.DASHED})
1926e41f4b71Sopenharmony_ci        TextInput({text: 'Underline, Red, WAVY'})
1927e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).margin(5)
1928e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.Underline, color: Color.Red, style: TextDecorationStyle.WAVY})
1929e41f4b71Sopenharmony_ci      }.height('90%')
1930e41f4b71Sopenharmony_ci    }
1931e41f4b71Sopenharmony_ci    .width('90%')
1932e41f4b71Sopenharmony_ci    .margin(10)
1933e41f4b71Sopenharmony_ci  }
1934e41f4b71Sopenharmony_ci}
1935e41f4b71Sopenharmony_ci```
1936e41f4b71Sopenharmony_ci
1937e41f4b71Sopenharmony_ci![TextInputDecoration](figures/textinput_decoration.png)
1938e41f4b71Sopenharmony_ci
1939e41f4b71Sopenharmony_ci### 示例10
1940e41f4b71Sopenharmony_ci
1941e41f4b71Sopenharmony_cifontFeature属性使用示例,对比了fontFeature使用ss01属性和不使用ss01属性的效果。
1942e41f4b71Sopenharmony_ci
1943e41f4b71Sopenharmony_ci```ts
1944e41f4b71Sopenharmony_ci@Entry
1945e41f4b71Sopenharmony_ci@Component
1946e41f4b71Sopenharmony_cistruct TextInputExample {
1947e41f4b71Sopenharmony_ci  @State text1: string = 'This is ss01 on : 0123456789'
1948e41f4b71Sopenharmony_ci  @State text2: string = 'This is ss01 off: 0123456789'
1949e41f4b71Sopenharmony_ci
1950e41f4b71Sopenharmony_ci  build() {
1951e41f4b71Sopenharmony_ci    Column() {
1952e41f4b71Sopenharmony_ci      TextInput({ text: this.text1 })
1953e41f4b71Sopenharmony_ci        .fontSize(20)
1954e41f4b71Sopenharmony_ci        .margin({ top: 200 })
1955e41f4b71Sopenharmony_ci        .fontFeature("\"ss01\" on")
1956e41f4b71Sopenharmony_ci      TextInput({ text: this.text2 })
1957e41f4b71Sopenharmony_ci        .margin({ top: 10 })
1958e41f4b71Sopenharmony_ci        .fontSize(20)
1959e41f4b71Sopenharmony_ci        .fontFeature("\"ss01\" off")
1960e41f4b71Sopenharmony_ci    }
1961e41f4b71Sopenharmony_ci    .width("90%")
1962e41f4b71Sopenharmony_ci    .margin("5%")
1963e41f4b71Sopenharmony_ci  }
1964e41f4b71Sopenharmony_ci}
1965e41f4b71Sopenharmony_ci```
1966e41f4b71Sopenharmony_ci
1967e41f4b71Sopenharmony_ci![fontFeature](figures/textInputFontFeature.png)
1968e41f4b71Sopenharmony_ci
1969e41f4b71Sopenharmony_ci### 示例11
1970e41f4b71Sopenharmony_ci
1971e41f4b71Sopenharmony_ci自定义键盘弹出发生避让示例。
1972e41f4b71Sopenharmony_ci
1973e41f4b71Sopenharmony_ci```ts
1974e41f4b71Sopenharmony_ci@Entry
1975e41f4b71Sopenharmony_ci@Component
1976e41f4b71Sopenharmony_cistruct Index {
1977e41f4b71Sopenharmony_ci  controller: TextInputController = new TextInputController()
1978e41f4b71Sopenharmony_ci  @State inputValue: string = ""
1979e41f4b71Sopenharmony_ci  @State height1: string | number = '80%'
1980e41f4b71Sopenharmony_ci  @State supportAvoidance: boolean = true
1981e41f4b71Sopenharmony_ci
1982e41f4b71Sopenharmony_ci  // 自定义键盘组件
1983e41f4b71Sopenharmony_ci  @Builder
1984e41f4b71Sopenharmony_ci  CustomKeyboardBuilder() {
1985e41f4b71Sopenharmony_ci    Column() {
1986e41f4b71Sopenharmony_ci      Row() {
1987e41f4b71Sopenharmony_ci        Button('x').onClick(() => {
1988e41f4b71Sopenharmony_ci          // 关闭自定义键盘
1989e41f4b71Sopenharmony_ci          this.controller.stopEditing()
1990e41f4b71Sopenharmony_ci        }).margin(10)
1991e41f4b71Sopenharmony_ci      }
1992e41f4b71Sopenharmony_ci
1993e41f4b71Sopenharmony_ci      Grid() {
1994e41f4b71Sopenharmony_ci        ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'], (item: number | string) => {
1995e41f4b71Sopenharmony_ci          GridItem() {
1996e41f4b71Sopenharmony_ci            Button(item + "")
1997e41f4b71Sopenharmony_ci              .width(110).onClick(() => {
1998e41f4b71Sopenharmony_ci              this.inputValue += item
1999e41f4b71Sopenharmony_ci            })
2000e41f4b71Sopenharmony_ci          }
2001e41f4b71Sopenharmony_ci        })
2002e41f4b71Sopenharmony_ci      }.maxCount(3).columnsGap(10).rowsGap(10).padding(5)
2003e41f4b71Sopenharmony_ci    }.backgroundColor(Color.Gray)
2004e41f4b71Sopenharmony_ci  }
2005e41f4b71Sopenharmony_ci
2006e41f4b71Sopenharmony_ci  build() {
2007e41f4b71Sopenharmony_ci    Column() {
2008e41f4b71Sopenharmony_ci      Row() {
2009e41f4b71Sopenharmony_ci        Button("20%")
2010e41f4b71Sopenharmony_ci          .fontSize(24)
2011e41f4b71Sopenharmony_ci          .onClick(() => {
2012e41f4b71Sopenharmony_ci            this.height1 = "20%"
2013e41f4b71Sopenharmony_ci          })
2014e41f4b71Sopenharmony_ci        Button("80%")
2015e41f4b71Sopenharmony_ci          .fontSize(24)
2016e41f4b71Sopenharmony_ci          .margin({ left: 20 })
2017e41f4b71Sopenharmony_ci          .onClick(() => {
2018e41f4b71Sopenharmony_ci            this.height1 = "80%"
2019e41f4b71Sopenharmony_ci          })
2020e41f4b71Sopenharmony_ci      }
2021e41f4b71Sopenharmony_ci      .justifyContent(FlexAlign.Center)
2022e41f4b71Sopenharmony_ci      .alignItems(VerticalAlign.Bottom)
2023e41f4b71Sopenharmony_ci      .height(this.height1)
2024e41f4b71Sopenharmony_ci      .width("100%")
2025e41f4b71Sopenharmony_ci      .padding({ bottom: 50 })
2026e41f4b71Sopenharmony_ci
2027e41f4b71Sopenharmony_ci      TextInput({ controller: this.controller, text: this.inputValue })// 绑定自定义键盘
2028e41f4b71Sopenharmony_ci        .customKeyboard(this.CustomKeyboardBuilder(), { supportAvoidance: this.supportAvoidance })
2029e41f4b71Sopenharmony_ci        .margin(10)
2030e41f4b71Sopenharmony_ci        .border({ width: 1 })
2031e41f4b71Sopenharmony_ci
2032e41f4b71Sopenharmony_ci    }
2033e41f4b71Sopenharmony_ci  }
2034e41f4b71Sopenharmony_ci}
2035e41f4b71Sopenharmony_ci```
2036e41f4b71Sopenharmony_ci
2037e41f4b71Sopenharmony_ci![CustomTextInputType](figures/textInputCustomKeyboard.gif)
2038e41f4b71Sopenharmony_ci
2039e41f4b71Sopenharmony_ci### 示例12
2040e41f4b71Sopenharmony_ci
2041e41f4b71Sopenharmony_ci该示例实现了使用minFontSize,maxFontSize及heightAdaptivePolicy设置文本自适应字号。
2042e41f4b71Sopenharmony_ci
2043e41f4b71Sopenharmony_ci```ts
2044e41f4b71Sopenharmony_ci@Entry
2045e41f4b71Sopenharmony_ci@Component
2046e41f4b71Sopenharmony_cistruct TextInputExample {
2047e41f4b71Sopenharmony_ci  build() {
2048e41f4b71Sopenharmony_ci    Row() {
2049e41f4b71Sopenharmony_ci      Column() {
2050e41f4b71Sopenharmony_ci        Text('heightAdaptivePolicy').fontSize(9).fontColor(0xCCCCCC)
2051e41f4b71Sopenharmony_ci        TextInput({ text: 'This is the text without the height adaptive policy set' })
2052e41f4b71Sopenharmony_ci          .width('80%').height(50).borderWidth(1).margin(1)
2053e41f4b71Sopenharmony_ci        TextInput({ text: 'This is the text with the height adaptive policy set' })
2054e41f4b71Sopenharmony_ci          .width('80%')
2055e41f4b71Sopenharmony_ci          .height(50)
2056e41f4b71Sopenharmony_ci          .borderWidth(1)
2057e41f4b71Sopenharmony_ci          .margin(1)
2058e41f4b71Sopenharmony_ci          .minFontSize(4)
2059e41f4b71Sopenharmony_ci          .maxFontSize(40)
2060e41f4b71Sopenharmony_ci          .maxLines(3)
2061e41f4b71Sopenharmony_ci          .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
2062e41f4b71Sopenharmony_ci        TextInput({ text: 'This is the text with the height adaptive policy set' })
2063e41f4b71Sopenharmony_ci          .width('80%')
2064e41f4b71Sopenharmony_ci          .height(50)
2065e41f4b71Sopenharmony_ci          .borderWidth(1)
2066e41f4b71Sopenharmony_ci          .margin(1)
2067e41f4b71Sopenharmony_ci          .minFontSize(4)
2068e41f4b71Sopenharmony_ci          .maxFontSize(40)
2069e41f4b71Sopenharmony_ci          .maxLines(3)
2070e41f4b71Sopenharmony_ci          .heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
2071e41f4b71Sopenharmony_ci        TextInput({ text: 'This is the text with the height adaptive policy set' })
2072e41f4b71Sopenharmony_ci          .width('80%')
2073e41f4b71Sopenharmony_ci          .height(50)
2074e41f4b71Sopenharmony_ci          .borderWidth(1)
2075e41f4b71Sopenharmony_ci          .margin(1)
2076e41f4b71Sopenharmony_ci          .minFontSize(4)
2077e41f4b71Sopenharmony_ci          .maxFontSize(40)
2078e41f4b71Sopenharmony_ci          .maxLines(3)
2079e41f4b71Sopenharmony_ci          .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
2080e41f4b71Sopenharmony_ci      }.height('90%')
2081e41f4b71Sopenharmony_ci    }
2082e41f4b71Sopenharmony_ci    .width('90%')
2083e41f4b71Sopenharmony_ci    .margin(10)
2084e41f4b71Sopenharmony_ci  }
2085e41f4b71Sopenharmony_ci}
2086e41f4b71Sopenharmony_ci```
2087e41f4b71Sopenharmony_ci
2088e41f4b71Sopenharmony_ci![TextInputAdaptFont](figures/textinput_adapt_font.png)
2089e41f4b71Sopenharmony_ci
2090e41f4b71Sopenharmony_ci### 示例13
2091e41f4b71Sopenharmony_cilineBreakStrategy使用示例,展示了lineBreakStrategy设置不同挡位的效果。
2092e41f4b71Sopenharmony_ci
2093e41f4b71Sopenharmony_ci```ts
2094e41f4b71Sopenharmony_ci@Entry
2095e41f4b71Sopenharmony_ci@Component
2096e41f4b71Sopenharmony_cistruct TextInputExample {
2097e41f4b71Sopenharmony_ci  @State message1: string =
2098e41f4b71Sopenharmony_ci    "They can be classified as built-in components–those directly provided by the ArkUI framework and custom components – those defined by developers" +
2099e41f4b71Sopenharmony_ci      "The built-in components include buttons radio buttonsprogress indicators and text You can set the rendering effectof thesecomponents in method chaining mode," +
2100e41f4b71Sopenharmony_ci      "page components are divided into independent UI units to implementindependent creation development and reuse of different units on pages making pages more engineering-oriented."
2101e41f4b71Sopenharmony_ci  @State lineBreakStrategyIndex: number = 0
2102e41f4b71Sopenharmony_ci  @State lineBreakStrategy: LineBreakStrategy[] = [LineBreakStrategy.GREEDY, LineBreakStrategy.HIGH_QUALITY, LineBreakStrategy.BALANCED]
2103e41f4b71Sopenharmony_ci  @State lineBreakStrategyStr: string[] = ['GREEDY', 'HIGH_QUALITY', 'BALANCED']
2104e41f4b71Sopenharmony_ci
2105e41f4b71Sopenharmony_ci  build() {
2106e41f4b71Sopenharmony_ci    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start }) {
2107e41f4b71Sopenharmony_ci      Text('lineBreakStrategy').fontSize(9).fontColor(0xCCCCCC)
2108e41f4b71Sopenharmony_ci      TextInput({ text: this.message1 })
2109e41f4b71Sopenharmony_ci        .fontSize(12)
2110e41f4b71Sopenharmony_ci        .border({ width: 1 })
2111e41f4b71Sopenharmony_ci        .padding(10)
2112e41f4b71Sopenharmony_ci        .width('100%')
2113e41f4b71Sopenharmony_ci        .maxLines(12)
2114e41f4b71Sopenharmony_ci        .style(TextInputStyle.Inline)
2115e41f4b71Sopenharmony_ci        .lineBreakStrategy(this.lineBreakStrategy[this.lineBreakStrategyIndex])
2116e41f4b71Sopenharmony_ci      Row() {
2117e41f4b71Sopenharmony_ci        Button('当前lineBreakStrategy模式:' + this.lineBreakStrategyStr[this.lineBreakStrategyIndex]).onClick(() => {
2118e41f4b71Sopenharmony_ci          this.lineBreakStrategyIndex++
2119e41f4b71Sopenharmony_ci          if(this.lineBreakStrategyIndex > (this.lineBreakStrategyStr.length - 1)) {
2120e41f4b71Sopenharmony_ci            this.lineBreakStrategyIndex = 0
2121e41f4b71Sopenharmony_ci          }
2122e41f4b71Sopenharmony_ci        })
2123e41f4b71Sopenharmony_ci      }
2124e41f4b71Sopenharmony_ci    }.height(700).width(370).padding({ left: 35, right: 35, top: 35 })
2125e41f4b71Sopenharmony_ci  }
2126e41f4b71Sopenharmony_ci}
2127e41f4b71Sopenharmony_ci```
2128e41f4b71Sopenharmony_ci
2129e41f4b71Sopenharmony_ci![textInputLineBreakStrategy](figures/textInputLineBreakStrategy.gif)
2130e41f4b71Sopenharmony_ci
2131e41f4b71Sopenharmony_ci### 示例14
2132e41f4b71Sopenharmony_ci
2133e41f4b71Sopenharmony_ci该示例展示输入框支持插入和删除回调。
2134e41f4b71Sopenharmony_ci
2135e41f4b71Sopenharmony_ci```ts
2136e41f4b71Sopenharmony_ci// xxx.ets
2137e41f4b71Sopenharmony_ci@Entry
2138e41f4b71Sopenharmony_ci@Component
2139e41f4b71Sopenharmony_cistruct TextInputExample {
2140e41f4b71Sopenharmony_ci  @State insertValue: string = ""
2141e41f4b71Sopenharmony_ci  @State deleteValue: string = ""
2142e41f4b71Sopenharmony_ci  @State insertOffset: number = 0
2143e41f4b71Sopenharmony_ci  @State deleteOffset: number = 0
2144e41f4b71Sopenharmony_ci  @State deleteDirection: number = 0
2145e41f4b71Sopenharmony_ci
2146e41f4b71Sopenharmony_ci  build() {
2147e41f4b71Sopenharmony_ci    Row() {
2148e41f4b71Sopenharmony_ci      Column() {
2149e41f4b71Sopenharmony_ci        TextInput({ text: "TextInput支持插入回调文本" })
2150e41f4b71Sopenharmony_ci          .height(60)
2151e41f4b71Sopenharmony_ci          .onWillInsert((info: InsertValue) => {
2152e41f4b71Sopenharmony_ci            this.insertValue = info.insertValue
2153e41f4b71Sopenharmony_ci            return true;
2154e41f4b71Sopenharmony_ci          })
2155e41f4b71Sopenharmony_ci          .onDidInsert((info: InsertValue) => {
2156e41f4b71Sopenharmony_ci            this.insertOffset = info.insertOffset
2157e41f4b71Sopenharmony_ci          })
2158e41f4b71Sopenharmony_ci
2159e41f4b71Sopenharmony_ci        Text("insertValue:" + this.insertValue + "  insertOffset:" + this.insertOffset).height(30)
2160e41f4b71Sopenharmony_ci
2161e41f4b71Sopenharmony_ci        TextInput({ text: "TextInput支持删除回调文本b" })
2162e41f4b71Sopenharmony_ci          .height(60)
2163e41f4b71Sopenharmony_ci          .onWillDelete((info: DeleteValue) => {
2164e41f4b71Sopenharmony_ci            this.deleteValue = info.deleteValue
2165e41f4b71Sopenharmony_ci            info.direction
2166e41f4b71Sopenharmony_ci            return true;
2167e41f4b71Sopenharmony_ci          })
2168e41f4b71Sopenharmony_ci          .onDidDelete((info: DeleteValue) => {
2169e41f4b71Sopenharmony_ci            this.deleteOffset = info.deleteOffset
2170e41f4b71Sopenharmony_ci            this.deleteDirection = info.direction
2171e41f4b71Sopenharmony_ci          })
2172e41f4b71Sopenharmony_ci
2173e41f4b71Sopenharmony_ci        Text("deleteValue:" + this.deleteValue + "  deleteOffset:" + this.deleteOffset).height(30)
2174e41f4b71Sopenharmony_ci        Text("deleteDirection:" + (this.deleteDirection == 0 ? "BACKWARD" : "FORWARD")).height(30)
2175e41f4b71Sopenharmony_ci
2176e41f4b71Sopenharmony_ci      }.width('100%')
2177e41f4b71Sopenharmony_ci    }
2178e41f4b71Sopenharmony_ci    .height('100%')
2179e41f4b71Sopenharmony_ci  }
2180e41f4b71Sopenharmony_ci}
2181e41f4b71Sopenharmony_ci```
2182e41f4b71Sopenharmony_ci
2183e41f4b71Sopenharmony_ci![TextInputInsertAndDelete](figures/TextInputInsertAndDelete.PNG)
2184e41f4b71Sopenharmony_ci
2185e41f4b71Sopenharmony_ci### 示例15
2186e41f4b71Sopenharmony_ci
2187e41f4b71Sopenharmony_cieditMenuOptions使用示例,展示设置自定义菜单扩展项的文本内容、图标、回调方法。
2188e41f4b71Sopenharmony_ci
2189e41f4b71Sopenharmony_ci```ts
2190e41f4b71Sopenharmony_ci// xxx.ets
2191e41f4b71Sopenharmony_ci@Entry
2192e41f4b71Sopenharmony_ci@Component
2193e41f4b71Sopenharmony_cistruct TextInputExample {
2194e41f4b71Sopenharmony_ci  @State text: string = 'TextInput editMenuOptions'
2195e41f4b71Sopenharmony_ci
2196e41f4b71Sopenharmony_ci  onCreateMenu(menuItems: Array<TextMenuItem>) {
2197e41f4b71Sopenharmony_ci    menuItems.forEach((value, index) => {
2198e41f4b71Sopenharmony_ci      value.icon = $r('app.media.startIcon')
2199e41f4b71Sopenharmony_ci      if (value.id.equals(TextMenuItemId.COPY)) {
2200e41f4b71Sopenharmony_ci        value.content = "复制change"
2201e41f4b71Sopenharmony_ci      }
2202e41f4b71Sopenharmony_ci      if (value.id.equals(TextMenuItemId.SELECT_ALL)) {
2203e41f4b71Sopenharmony_ci        value.content = "全选change"
2204e41f4b71Sopenharmony_ci      }
2205e41f4b71Sopenharmony_ci    })
2206e41f4b71Sopenharmony_ci    let item1: TextMenuItem = {
2207e41f4b71Sopenharmony_ci      content: 'custom1',
2208e41f4b71Sopenharmony_ci      icon: $r('app.media.startIcon'),
2209e41f4b71Sopenharmony_ci      id: TextMenuItemId.of('custom1'),
2210e41f4b71Sopenharmony_ci    }
2211e41f4b71Sopenharmony_ci    let item2: TextMenuItem = {
2212e41f4b71Sopenharmony_ci      content: 'custom2',
2213e41f4b71Sopenharmony_ci      id: TextMenuItemId.of('custom2'),
2214e41f4b71Sopenharmony_ci      icon: $r('app.media.startIcon'),
2215e41f4b71Sopenharmony_ci    }
2216e41f4b71Sopenharmony_ci    menuItems.push(item1)
2217e41f4b71Sopenharmony_ci    menuItems.unshift(item2)
2218e41f4b71Sopenharmony_ci    return menuItems
2219e41f4b71Sopenharmony_ci  }
2220e41f4b71Sopenharmony_ci
2221e41f4b71Sopenharmony_ci  build() {
2222e41f4b71Sopenharmony_ci    Column() {
2223e41f4b71Sopenharmony_ci      TextInput({ text: this.text })
2224e41f4b71Sopenharmony_ci        .width('95%')
2225e41f4b71Sopenharmony_ci        .height(50)
2226e41f4b71Sopenharmony_ci        .editMenuOptions({
2227e41f4b71Sopenharmony_ci          onCreateMenu: this.onCreateMenu, onMenuItemClick: (menuItem: TextMenuItem, textRange: TextRange) => {
2228e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.of("custom2"))) {
2229e41f4b71Sopenharmony_ci              console.log("拦截 id: custom2 start:" + textRange.start + "; end:" + textRange.end)
2230e41f4b71Sopenharmony_ci              return true;
2231e41f4b71Sopenharmony_ci            }
2232e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.COPY)) {
2233e41f4b71Sopenharmony_ci              console.log("拦截 COPY start:" + textRange.start + "; end:" + textRange.end)
2234e41f4b71Sopenharmony_ci              return true;
2235e41f4b71Sopenharmony_ci            }
2236e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.SELECT_ALL)) {
2237e41f4b71Sopenharmony_ci              console.log("不拦截 SELECT_ALL start:" + textRange.start + "; end:" + textRange.end)
2238e41f4b71Sopenharmony_ci              return false;
2239e41f4b71Sopenharmony_ci            }
2240e41f4b71Sopenharmony_ci            return false;
2241e41f4b71Sopenharmony_ci          }
2242e41f4b71Sopenharmony_ci        })
2243e41f4b71Sopenharmony_ci        .margin({ top: 100 })
2244e41f4b71Sopenharmony_ci    }
2245e41f4b71Sopenharmony_ci    .width("90%")
2246e41f4b71Sopenharmony_ci    .margin("5%")
2247e41f4b71Sopenharmony_ci  }
2248e41f4b71Sopenharmony_ci}
2249e41f4b71Sopenharmony_ci```
2250e41f4b71Sopenharmony_ci
2251e41f4b71Sopenharmony_ci![textInputEditMenuOptions](figures/textInputEditMenuOptions.gif)
2252e41f4b71Sopenharmony_ci
2253e41f4b71Sopenharmony_ci### 示例16
2254e41f4b71Sopenharmony_cicancelButton属性接口使用示例。
2255e41f4b71Sopenharmony_ci```ts
2256e41f4b71Sopenharmony_ci// xxx.ets
2257e41f4b71Sopenharmony_ci@Entry
2258e41f4b71Sopenharmony_ci@Component
2259e41f4b71Sopenharmony_cistruct ClearNodeExample {
2260e41f4b71Sopenharmony_ci  @State text: string = ''
2261e41f4b71Sopenharmony_ci  symbolModifier: SymbolGlyphModifier =
2262e41f4b71Sopenharmony_ci    new SymbolGlyphModifier($r('sys.symbol.trash')).fontColor([Color.Red]).fontSize(16).fontWeight(FontWeight.Regular)
2263e41f4b71Sopenharmony_ci
2264e41f4b71Sopenharmony_ci  build() {
2265e41f4b71Sopenharmony_ci    Column() {
2266e41f4b71Sopenharmony_ci      TextInput({ text: this.text, placeholder: 'input your word...' })
2267e41f4b71Sopenharmony_ci        .cancelButton({
2268e41f4b71Sopenharmony_ci          style: CancelButtonStyle.CONSTANT,
2269e41f4b71Sopenharmony_ci          icon: this.symbolModifier
2270e41f4b71Sopenharmony_ci        })
2271e41f4b71Sopenharmony_ci    }
2272e41f4b71Sopenharmony_ci  }
2273e41f4b71Sopenharmony_ci}
2274e41f4b71Sopenharmony_ci```
2275e41f4b71Sopenharmony_ci
2276e41f4b71Sopenharmony_ci![cancelButton](figures/TextInputCancelButton_SymbolGlyphModifier.jpg)
2277