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_ci无 13e41f4b71Sopenharmony_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> top: '8vp',<br> right: '16vp',<br> bottom: '8vp',<br> left: '16vp'<br> } 47e41f4b71Sopenharmony_ci> 48e41f4b71Sopenharmony_ci> 输入框开启下划线模式时,通用属性padding的默认值为:<br>{<br> top: '12vp',<br> right: '0vp',<br> bottom: '12vp',<br> 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 \| [FontWeight](ts-appendix-enums.md#fontweight) \| string | 是 | 文本的字体粗细,number类型取值[100, 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 | 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枚举说明) \| [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.Start、TextAlign.Center和TextAlign.End。 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci可通过[align](ts-universal-attributes-location.md)属性控制文本段落在垂直方向上的位置,此组件中不可通过align属性控制文本段落在水平方向上的位置,即align属性中Alignment.TopStart、Alignment.Top、Alignment.TopEnd效果相同,控制内容在顶部,Alignment.Start、Alignment.Center、Alignment.End效果相同,控制内容垂直居中,Alignment.BottomStart、Alignment.Bottom、Alignment.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) \| 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 \| string \| [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/> type: TextDecorationType.None,<br/> color: Color.Black,<br/> style: TextDecorationStyle.SOLID <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 \| string \| [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_ALL。 758e41f4b71Sopenharmony_ci 759e41f4b71Sopenharmony_ci当overflow设置TextOverflow.None与TextOverflow.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 \| string \| [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 \| string \| [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 \| [Resource](ts-types.md#resource) | 否 | 密码输入模式时,能够切换密码隐藏的显示状态的图标。 | 1036e41f4b71Sopenharmony_ci| offIconSrc | string \| [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: 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: (enterKey: EnterKeyType, event: SubmitEvent) => 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: (isEditing: boolean) => 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: (isEditing: boolean) => 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: (value: string) => 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: (value: string) => 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: (value: string, event: PasteEvent) => 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: 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: number, selectionEnd: number, options?: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 2277