• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 输入框类组件通用接口
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @kangshihui-->
5<!--Designer: @pssea-->
6<!--Tester: @jiaoaozihao-->
7<!--Adviser: @HelloCrease-->
8
9为[TextInput](ts-basic-components-textinput.md)、[TextArea](ts-basic-components-textarea.md)组件提供获取文本和光标信息、插入和删除文本、设置计数器以及文本装饰线的能力。
10为[Search](ts-basic-components-search.md)组件提供获取文本和光标信息、插入和删除文本以及设置文本装饰线的能力。
11
12>  **说明:**
13>
14>  从API version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
15
16## TextContentControllerBase
17
18TextInput、TextArea、Search的基础控制器。
19
20**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
21
22**系统能力:** SystemCapability.ArkUI.ArkUI.Full
23
24### getTextContentRect
25
26getTextContentRect(): RectResult
27
28获取已编辑文本内容区域相对于组件的位置和大小,返回值的单位为像素。
29
30**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
31
32**系统能力:** SystemCapability.ArkUI.ArkUI.Full
33
34**返回值:**
35
36| 类型       | 说明       |
37| -------------------  | -------- |
38| [RectResult](ts-universal-attributes-on-child-touch-test.md#rectresult) | 获取已编辑文本内容区域相对组件的位置和大小。 |
39
40> **说明:**
41>
42> - 初始不输入文本时,返回值中有相对组件的位置信息,大小为0。
43> - 返回值中的位置信息是第一个字符相对于可编辑组件的位置。
44> - 在Search组件中,返回的位置信息是相对Search组件中搜索图标的偏移值。
45> - 有输入时,返回信息中的宽度是组件编辑区域的固定宽度。
46
47### getTextContentLineCount
48
49getTextContentLineCount(): number
50
51获取已编辑文本内容的行数。
52
53**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
54
55**系统能力:** SystemCapability.ArkUI.ArkUI.Full
56
57**返回值:**
58
59| 类型  | 说明       |
60| ----- | -------- |
61| number| 已编辑文本内容行数。 |
62
63### getCaretOffset<sup>11+</sup>
64
65getCaretOffset(): CaretOffset
66
67返回当前光标所在位置信息。
68
69**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
70
71**系统能力:** SystemCapability.ArkUI.ArkUI.Full
72
73**返回值:**
74
75| 类型                      | 说明               |
76| ----------------------- | ---------------- |
77| [CaretOffset](#caretoffset11对象说明) | 光标相对输入框的位置。 |
78
79> **说明:**
80>
81> - 在当前帧更新光标位置同时调用该接口,该接口不生效。
82> - 在Search组件中,返回的位置信息是相对Search组件中搜索图标的偏移值。
83> - 在Search组件中,不输入文本时,返回值中有相对Search组件的位置信息。
84> - 返回值中的位置信息是光标相对于可编辑组件的位置。
85
86### addText<sup>15+</sup>
87
88addText(text: string, textOperationOptions?: TextContentControllerOptions): number
89
90在已编辑文本的指定位置插入文本,默认插入至文本末尾。
91拖拽文本的状态下不生效。
92
93`addText`仅影响应用内部的UI表现,不影响输入法应用的内部逻辑,不推荐在预上屏状态下调用。
94
95**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
96
97**系统能力:** SystemCapability.ArkUI.ArkUI.Full
98
99**参数:**
100
101| 参数名  | 类型   | 必填   | 说明  |
102| ------- | ------ | ---- | ----- |
103| text | string | 是    | 插入的文本内容。 |
104| textOperationOptions   | [TextContentControllerOptions](#textcontentcontrolleroptions15) | 否    | 插入文本的配置选项,不设置时默认插入文本至末尾。 |
105
106**返回值:**
107
108| 类型  | 说明       |
109| ----- | -------- |
110| number| 插入文本后光标的位置。 |
111
112### deleteText<sup>15+</sup>
113
114deleteText(range?: TextRange): void
115
116删除已编辑文本的指定区域的内容。
117拖拽文本的状态下不生效。
118
119`deleteText`仅影响应用内部的UI表现,不影响输入法应用的内部逻辑,不推荐在预上屏状态下调用。
120
121**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
122
123**系统能力:** SystemCapability.ArkUI.ArkUI.Full
124
125**参数:**
126
127| 参数名  | 类型   | 必填   | 说明  |
128| ------- | ------ | ---- | ----- |
129| range | [TextRange](ts-text-common.md#textrange12) | 否    | 删除文本的范围,包括删除文本的起始位置和终止位置。<br>未指定删除范围时,默认将删除全部文本。未指定删除文本的起始位置,则默认从下标0开始删除;未指定删除文本的终止位置,则默认以文本末尾作为删除的结束点。 |
130
131### getSelection<sup>15+</sup>
132
133getSelection(): TextRange
134
135返回当前文本的选择范围。
136
137**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
138
139**系统能力:** SystemCapability.ArkUI.ArkUI.Full
140
141**返回值:**
142
143| 类型                      | 说明               |
144| ----------------------- | ---------------- |
145| [TextRange](ts-text-common.md#textrange12) | 文本当前的选择范围,未选中返回光标位置。 |
146
147### clearPreviewText<sup>17+</sup>
148
149clearPreviewText(): void
150
151通知输入法清除当前的预上屏文本内容。
152
153**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。
154
155**系统能力:** SystemCapability.ArkUI.ArkUI.Full
156
157## InputCounterOptions<sup>11+</sup>对象说明
158
159计数器的配置项。
160
161**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
162
163**系统能力:** SystemCapability.ArkUI.ArkUI.Full
164
165| 名称   | 类型    |     只读    |     可选    |     说明    |
166| -------- | ------- | ----------- | ----------- | ----------- |
167| thresholdPercentage | number  | 否 | 是 | thresholdPercentage是可输入字符数占最大字符限制的百分比值。字符计数器显示的样式为当前输入字符数/最大字符数。当输入字符数大于最大字符数乘百分比值时,显示字符计数器。thresholdPercentage值的有效值区间为[1,100],数值为小数时,向下取整,如果设置的number超出有效值区间内,不显示字符计数器。thresholdPercentage设置为undefined,显示字符计数器,但此参数不生效。 |
168| highlightBorder     | boolean | 否  | 是 | 如果用户设置计数器时不设置InputCounterOptions,那么当前输入字符数达到最大字符数时,边框和计数器下标将变为红色。如果用户设置显示字符计数器同时thresholdPercentage参数数值在有效区间内,那么当输入字符数超过最大字符数时,边框和计数器下标将变成红色。如果此参数为true,则显示红色边框。计数器默认显示红色边框。 |
169
170## CaretOffset<sup>11+</sup>对象说明
171
172光标相对输入框的位置信息。
173
174**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
175
176**系统能力:** SystemCapability.ArkUI.ArkUI.Full
177
178| 名称   | 类型    |     只读    |     可选    |     说明    |
179| -------- | ------- | ----------- | ----------- | ----------- |
180| index | number | 否 | 否 | 光标所在位置的索引值。    |
181| x     | number | 否 | 否 | 光标相对输入框的x坐标位值,单位px。 |
182| y     | number | 否 | 否 | 光标相对输入框的y坐标位值,单位px。 |
183
184## TextDecorationOptions<sup>12+</sup>对象说明
185
186文本装饰线的配置项。
187
188**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
189
190**系统能力:** SystemCapability.ArkUI.ArkUI.Full
191
192| 名称   | 类型    |     只读    |     可选    |     说明    |
193| -------- | ------- | ----------- | ----------- | ----------- |
194| type  | [TextDecorationType](ts-appendix-enums.md#textdecorationtype) | 否   | 否 | 设置文本装饰线类型。 |
195| color  | &nbsp;[ResourceColor](ts-types.md#resourcecolor) | 否   | 是 | 设置文本装饰线颜色。 |
196| style | [TextDecorationStyle](ts-appendix-enums.md#textdecorationstyle12) | 否   | 是 | 设置文本装饰线样式。 |
197
198## SelectionOptions<sup>12+</sup>对象说明
199
200setTextSelection选中文字时的配置。
201
202**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
203
204**系统能力:** SystemCapability.ArkUI.ArkUI.Full
205
206| 名称   | 类型    |     只读    |     可选    |     说明    |
207| -------- | ------- | ----------- | ----------- | ----------- |
208| menuPolicy | [MenuPolicy](#menupolicy12) | 否   | 是 | 菜单弹出的策略。 |
209
210## MenuPolicy<sup>12+</sup>
211
212菜单弹出的策略。
213
214**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
215
216**系统能力:** SystemCapability.ArkUI.ArkUI.Full
217
218| 名称    | 值   | 说明                               |
219| ------- | ---- | ---------------------------------- |
220| DEFAULT | 0    | 按照底层默认逻辑决定是否弹出菜单。 |
221| HIDE    | 1    | 始终不弹出菜单。                   |
222| SHOW    | 2    | 始终弹出菜单。                     |
223
224## SymbolGlyphModifier<sup>12+</sup>
225
226type SymbolGlyphModifier = SymbolGlyphModifier
227
228SymbolGlyphModifier类型,用于设置自定义图标小符号。
229
230**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
231
232**系统能力:** SystemCapability.ArkUI.ArkUI.Full
233
234| 类型  | 说明       |
235| ----- | -------- |
236| [SymbolGlyphModifier](ts-universal-attributes-attribute-symbolglyphmodifier.md#symbolglyphmodifier) | 返回当前的SymbolGlyphModifier。 |
237
238## TextContentControllerOptions<sup>15+</sup>
239
240用于设置输入框插入字符时的配置选项。
241
242**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
243
244**系统能力:** SystemCapability.ArkUI.ArkUI.Full
245
246| 名称      | 类型   | 只读 | 可选 | 说明       |
247| --------- | ------ | ---- | ---- | ---------- |
248| offset | number | 否   | 是   | 插入文本的位置。 |