1e41f4b71Sopenharmony_ci#  Search
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci搜索框组件,适用于浏览器的搜索内容输入框等应用场景。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 子组件
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 接口
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciSearch(options?: { value?: string, placeholder?: ResourceStr, icon?: string, controller?: SearchController })
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**参数:**
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 参数名      | 类型         | 必填 | 说明        |
24e41f4b71Sopenharmony_ci| ----------- | ------------- | ---- | ------------- |
25e41f4b71Sopenharmony_ci| value       | string                                               | 否   | 设置当前显示的搜索文本内容。<br />从API version 10开始,该参数支持[$$](../../../quick-start/arkts-two-way-sync.md)双向绑定变量。 |
26e41f4b71Sopenharmony_ci| placeholder | [ResourceStr](ts-types.md#resourcestr)<sup>10+</sup> | 否   | 设置无输入时的提示文本。                                     |
27e41f4b71Sopenharmony_ci| icon        | string                                               | 否   | 设置搜索图标路径,默认使用系统搜索图标。<br/>**说明:** <br/>icon的数据源支持本地图片和网络图片。<br/>-&nbsp;支持的图片格式包括png、jpg、bmp、svg、gif、pixelmap和heif。<br/>-&nbsp;支持Base64字符串。格式data:image/[png\|jpeg\|bmp\|webp\|heif];base64,[base64 data], 其中[base64 data]为Base64字符串数据。<br/>如果与属性searchIcon同时设置,则searchIcon优先。 |
28e41f4b71Sopenharmony_ci| controller  | [SearchController](#searchcontroller) | 否   | 设置Search组件控制器。                                       |
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci## 属性
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci### searchButton
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_cisearchButton(value: string, option?: SearchButtonOptions)
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci设置搜索框末尾搜索按钮。
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci点击搜索按钮,同时触发onSubmit与onClick回调。
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci**参数:** 
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci| 参数名 | 类型                                                  | 必填 | 说明                         |
49e41f4b71Sopenharmony_ci| ------ | ----------------------------------------------------- | ---- | ---------------------------- |
50e41f4b71Sopenharmony_ci| value  | string                                                | 是   | 搜索框末尾搜索按钮文本内容。 |
51e41f4b71Sopenharmony_ci| option | [SearchButtonOptions](#searchbuttonoptions10对象说明) | 否   | 配置搜索框文本样式。<br />默认值:<br />{<br />fontSize: '16fp',<br />fontColor: '#ff3f97e9'<br />}         |
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci### placeholderColor
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ciplaceholderColor(value: ResourceColor)
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci设置placeholder文本颜色。
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**参数:** 
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                             |
66e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ------------------------------------------------ |
67e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | placeholder文本颜色。<br />默认值:'#99182431'。 |
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci### placeholderFont
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ciplaceholderFont(value?: Font)
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。当前支持'HarmonyOS Sans'字体和[注册自定义字体](../js-apis-font.md)。
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**参数:** 
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| 参数名 | 类型                     | 必填 | 说明                  |
82e41f4b71Sopenharmony_ci| ------ | ------------------------ | ---- | --------------------- |
83e41f4b71Sopenharmony_ci| value  | [Font](ts-types.md#font) | 否   | placeholder文本样式。 |
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci### textFont
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_citextFont(value?: Font)
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci设置搜索框内输入文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci**参数:** 
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci| 参数名 | 类型                     | 必填 | 说明                   |
98e41f4b71Sopenharmony_ci| ------ | ------------------------ | ---- | ---------------------- |
99e41f4b71Sopenharmony_ci| value  | [Font](ts-types.md#font) | 否   | 搜索框内输入文本样式。 |
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci### textAlign<sup>9+</sup>
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_citextAlign(value: TextAlign)
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci设置文本在搜索框中的对齐方式。目前支持的对齐方式有:Start、Center、End。
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci**参数:** 
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci| 参数名 | 类型                                        | 必填 | 说明                                                   |
114e41f4b71Sopenharmony_ci| ------ | ------------------------------------------- | ---- | ------------------------------------------------------ |
115e41f4b71Sopenharmony_ci| value  | [TextAlign](ts-appendix-enums.md#textalign) | 是   | 文本在搜索框中的对齐方式。<br/>默认值:TextAlign.Start |
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci### copyOption<sup>9+</sup>
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_cicopyOption(value: CopyOptions)
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci设置输入的文本是否可复制。设置CopyOptions.None时,当前Search中的文字无法被复制、剪切和帮写,仅支持粘贴。
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci设置CopyOptions.None时,不允许拖拽。
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**参数:** 
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci| 参数名 | 类型                                             | 必填 | 说明                                                         |
132e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
133e41f4b71Sopenharmony_ci| value  | [CopyOptions](ts-appendix-enums.md#copyoptions9) | 是   | 输入的文本是否可复制。<br />默认值:CopyOptions.LocalDevice,支持设备内复制。 |
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci### searchIcon<sup>10+</sup>
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_cisearchIcon(value: IconOptions | SymbolGlyphModifier)
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  | [IconOptions](#iconoptions10对象说明) \| [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 是   | 左侧搜索图标样式。<!--RP1--><br />浅色模式默认值:<br />{<br />size: '16vp',<br />color: '#99182431',<br />src: ' '<br />}<br />深色模式默认值:<br />{<br />size: '16vp',<br />color: '#99ffffff',<br />src: ' '<br />} <!--RP1End-->|
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci### cancelButton<sup>10+</sup>
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_cicancelButton(value: CancelButtonOptions | CancelButtonSymbolOptions)
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  | [CancelButtonOptions](#cancelbuttonoptions12对象说明) \| [CancelButtonSymbolOptions](#cancelbuttonsymboloptions12对象说明) | 是   | 右侧清除按钮样式。<br>默认值:<br />{<br/>style: CancelButtonStyle.INPUT,<br/>icon:&nbsp;{<br/>size: '16vp',<br/>color: '#99ffffff',<br/>src: ' '<br/>}<br/>}<br/>当style为CancelButtonStyle.CONSTANT时,默认显示清除样式。 |
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci### fontColor<sup>10+</sup>
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_cifontColor(value: ResourceColor)
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci设置输入文本的字体颜色。[文本通用属性](ts-universal-attributes-text-style.md)fontSize、fontStyle、fontWeight和fontFamily在[textFont](#textfont)属性中设置。
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  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 输入文本的字体颜色。<br />默认值:'#FF182431'。 |
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci### caretStyle<sup>10+</sup>
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_cicaretStyle(value: CaretStyle)
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  | [CaretStyle](ts-text-common.md#caretstyle10) | 是   | 光标样式。<br />默认值:<br />{<br />width: '1.5vp',<br />color: '#007DFF'<br />} |
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci>  **说明:**     
200e41f4b71Sopenharmony_ci>   从API version 12开始,此接口支持设置文本手柄颜色,光标和文本手柄颜色保持一致。
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ci### enableKeyboardOnFocus<sup>10+</sup>
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_cienableKeyboardOnFocus(value: boolean)
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci设置Search通过点击以外的方式获焦时,是否绑定输入法。
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci从API version 10开始,获焦默认绑定输入法。
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**参数:** 
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                            |
217e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ----------------------------------------------- |
218e41f4b71Sopenharmony_ci| value  | boolean | 是   | Search获焦时,是否绑定输入法<br/>默认值:true。 |
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ci### selectionMenuHidden<sup>10+</sup>
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ciselectionMenuHidden(value: boolean)
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci设置是否不弹出系统文本选择菜单。
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
227e41f4b71Sopenharmony_ci
228e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci**参数:** 
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                         |
233e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ------------------------------------------------------------ |
234e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否不弹出系统文本选择菜单。<br />设置为true时,单击输入框光标、长按输入框、双击输入框、三击输入框或者右键输入框,不弹出系统文本选择菜单。<br />设置为false时,弹出系统文本选择菜单。<br />默认值:false |
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci### customKeyboard<sup>10+</sup>
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_cicustomKeyboard(value: CustomBuilder, options?: KeyboardOptions)
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci设置自定义键盘。
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci当设置自定义键盘时,输入框激活后不会打开系统输入法,而是加载指定的自定义组件。
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_ci自定义键盘的高度可以通过自定义组件根节点的height属性设置,宽度不可设置,使用系统默认值。
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci自定义键盘采用覆盖原始界面的方式呈现,当没有开启避让模式或者输入框不需要避让的场景不会对应用原始界面产生压缩或者上提。
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci自定义键盘无法获取焦点,但是会拦截手势事件。
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci默认在输入控件失去焦点时,关闭自定义键盘,开发者也可以通过[stopEditing](#stopediting10)方法控制键盘关闭。
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci如果设备支持拍摄输入,设置自定义键盘后,该输入框会不支持拍摄输入。
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci**参数:**
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci| 参数名                | 类型                                        | 必填 | 说明                             |
261e41f4b71Sopenharmony_ci| --------------------- | ------------------------------------------- | ---- | -------------------------------- |
262e41f4b71Sopenharmony_ci| value                 | [CustomBuilder](ts-types.md#custombuilder8) | 是   | 自定义键盘。                     |
263e41f4b71Sopenharmony_ci| options<sup>12+</sup> | [KeyboardOptions](ts-basic-components-richeditor.md#keyboardoptions12)       | 否   | 设置自定义键盘是否支持避让功能。 |
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci### type<sup>11+</sup>
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_citype(value: SearchType)
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci设置输入框类型。
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci**参数:**
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci| 参数名 | 类型                                | 必填 | 说明                        |
278e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | -------------------------- |
279e41f4b71Sopenharmony_ci| value  | [SearchType](#searchtype11枚举说明) | 是   | 输入框类型。<br/>默认值:SearchType.Normal |
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci### maxLength<sup>11+</sup>
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_cimaxLength(value: number)
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci设置文本的最大输入字符数。默认不设置最大输入字符数限制。到达文本最大字符限制,将无法继续输入字符。
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci**参数:**
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci| 参数名 | 类型                                | 必填 | 说明                   |
294e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ---------------------- |
295e41f4b71Sopenharmony_ci| value  | number | 是   | 文本的最大输入字符数。 |
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci### enterKeyType<sup>12+</sup>
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_cienterKeyType(value: EnterKeyType)
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci设置输入法回车键类型。
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ci**参数:**
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci| 参数名 | 类型                                             | 必填 | 说明                                               |
310e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------ | ---- | -------------------------------------------------- |
311e41f4b71Sopenharmony_ci| value  | [EnterKeyType](ts-types.md#enterkeytype枚举说明) | 是   | 输入法回车键类型。<br/>默认值:EnterKeyType.Search |
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci### lineHeight<sup>12+</sup>
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_cilineHeight(value: number | string | Resource)
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci设置文本的文本行高,设置值不大于0时,不限制文本行高,自适应字体大小,number类型时单位为fp。
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci**参数:**
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明             |
326e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ---------------- |
327e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本的文本行高。 |
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci### decoration<sup>12+</sup>
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_cidecoration(value: TextDecorationOptions)
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci设置文本装饰线类型样式及其颜色。
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci**参数:**
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                                         |
342e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
343e41f4b71Sopenharmony_ci| value  | [TextDecorationOptions](ts-types.md#textdecorationoptions12对象说明) | 是   | 文本装饰线对象。<br />默认值:{<br/>&nbsp;type:&nbsp;TextDecorationType.None,<br/>&nbsp;color:&nbsp;Color.Black,<br/>&nbsp;style:&nbsp;TextDecorationStyle.SOLID&nbsp;<br/>} |
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci### letterSpacing<sup>12+</sup>
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ciletterSpacing(value: number | string | Resource)
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci设置文本字符间距。设置该值为百分比时,按默认值显示。设置该值为0时,按默认值显示。
350e41f4b71Sopenharmony_ci
351e41f4b71Sopenharmony_ci当取值为负值时,文字会发生压缩,负值过小时会将组件内容区大小压缩为0,导致无内容显示。
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ci**参数:**
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ci| 参数名 | 类型                       | 必填 | 说明           |
360e41f4b71Sopenharmony_ci| ------ | -------------------------- | ---- | -------------- |
361e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本字符间距。 |
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ci### fontFeature<sup>12+</sup>
364e41f4b71Sopenharmony_ci
365e41f4b71Sopenharmony_cifontFeature(value: string)
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci设置文字特性效果,比如数字等宽的特性。
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci格式为:normal \| \<feature-tag-value\>
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_ci\<feature-tag-value\>的格式为:\<string\> \[ \<integer\> \| on \| off ]
372e41f4b71Sopenharmony_ci
373e41f4b71Sopenharmony_ci\<feature-tag-value\>的个数可以有多个,中间用','隔开。
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci例如,使用等宽数字的输入格式为:"ss01" on。
376e41f4b71Sopenharmony_ci
377e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
380e41f4b71Sopenharmony_ci
381e41f4b71Sopenharmony_ci**参数:** 
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明           |
384e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------- |
385e41f4b71Sopenharmony_ci| value  | string | 是   | 文字特性效果。 |
386e41f4b71Sopenharmony_ci
387e41f4b71Sopenharmony_ciFont Feature当前支持的属性见 [fontFeature属性列表](ts-basic-components-text.md#fontfeature12)。
388e41f4b71Sopenharmony_ci设置 Font Feature 属性,Font Feature 是 OpenType 字体的高级排版能力,如支持连字、数字等宽等特性,一般用在自定义字体中,其能力需要字体本身支持。
389e41f4b71Sopenharmony_ci更多 Font Feature 能力介绍可参考 https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop 和 https://sparanoid.com/lab/opentype-features/
390e41f4b71Sopenharmony_ci
391e41f4b71Sopenharmony_ci### selectedBackgroundColor<sup>12+</sup>
392e41f4b71Sopenharmony_ci
393e41f4b71Sopenharmony_ciselectedBackgroundColor(value: ResourceColor)
394e41f4b71Sopenharmony_ci
395e41f4b71Sopenharmony_ci设置文本选中底板颜色。如果未设置不透明度,默认为20%不透明度。
396e41f4b71Sopenharmony_ci
397e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
398e41f4b71Sopenharmony_ci
399e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ci**参数:**
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                       |
404e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ------------------------------------------ |
405e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 文本选中底板颜色。<br/>默认为20%不透明度。 |
406e41f4b71Sopenharmony_ci
407e41f4b71Sopenharmony_ci### inputFilter<sup>12+</sup>
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ciinputFilter(value: ResourceStr, error?: &nbsp;Callback<&nbsp;string&nbsp;>)
410e41f4b71Sopenharmony_ci
411e41f4b71Sopenharmony_ci通过正则表达式设置输入过滤器。匹配表达式的输入允许显示,不匹配的输入将被过滤。仅支持单个字符匹配,不支持字符串匹配。
412e41f4b71Sopenharmony_ci
413e41f4b71Sopenharmony_ci设置inputFilter且输入的字符不为空字符,会导致设置输入框类型(即type接口)附带的文本过滤效果失效。
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ci**参数:**
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_ci| 参数名 | 类型                                   | 必填 | 说明                               |
422e41f4b71Sopenharmony_ci| ------ | -------------------------------------- | ---- | ---------------------------------- |
423e41f4b71Sopenharmony_ci| value  | [ResourceStr](ts-types.md#resourcestr) | 是   | 正则表达式。                       |
424e41f4b71Sopenharmony_ci| error  | &nbsp;Callback<&nbsp;string&nbsp;>     | 否   | 正则匹配失败时,返回被过滤的内容。 |
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci### textIndent<sup>12+</sup>
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_citextIndent(value: Dimension)
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci设置首行文本缩进。
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**参数:** 
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci| 参数名 | 类型                                 | 必填 | 说明                         |
439e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ---------------------------- |
440e41f4b71Sopenharmony_ci| value  | [Dimension](ts-types.md#dimension10)| 是   | 首行文本缩进。<br/>默认值:0   |
441e41f4b71Sopenharmony_ci
442e41f4b71Sopenharmony_ci### minFontSize<sup>12+</sup>
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ciminFontSize(value: number | string | Resource)
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci设置文本最小显示字号。
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci需配合[maxFontSize](#maxfontsize12)以及布局大小限制使用,单独设置不生效。
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci自适应字号生效时,fontSize设置不生效。
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci**参数:**
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
459e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
460e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本最小显示字号。 |
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci### maxFontSize<sup>12+</sup>
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_cimaxFontSize(value: number | string | Resource)
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci设置文本最大显示字号。
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci需配合[minFontSize](#minfontsize12)以及布局大小限制使用,单独设置不生效。
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci自适应字号生效时,fontSize设置不生效。
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
473e41f4b71Sopenharmony_ci
474e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci**参数:**
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
479e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
480e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 是   | 文本最大显示字号。 |
481e41f4b71Sopenharmony_ci
482e41f4b71Sopenharmony_ci### editMenuOptions<sup>12+</sup>
483e41f4b71Sopenharmony_ci
484e41f4b71Sopenharmony_cieditMenuOptions(editMenu: EditMenuOptions)
485e41f4b71Sopenharmony_ci
486e41f4b71Sopenharmony_ci设置自定义菜单扩展项,允许用户设置扩展项的文本内容、图标、回调方法。
487e41f4b71Sopenharmony_ci
488e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
489e41f4b71Sopenharmony_ci
490e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
491e41f4b71Sopenharmony_ci
492e41f4b71Sopenharmony_ci**参数:** 
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_ci| 参数名 | 类型                                          | 必填 | 说明                                          |
495e41f4b71Sopenharmony_ci| ------ | --------------------------------------------- | ---- | --------------------------------------------- |
496e41f4b71Sopenharmony_ci| editMenu  | [EditMenuOptions](ts-text-common.md#editmenuoptions对象说明) | 是   | 扩展菜单选项。 |
497e41f4b71Sopenharmony_ci
498e41f4b71Sopenharmony_ci### enablePreviewText<sup>12+</sup>
499e41f4b71Sopenharmony_ci
500e41f4b71Sopenharmony_cienablePreviewText(enable: boolean)
501e41f4b71Sopenharmony_ci
502e41f4b71Sopenharmony_ci设置是否开启输入预上屏。
503e41f4b71Sopenharmony_ci
504e41f4b71Sopenharmony_ci预上屏内容定义为文字暂存态,目前不支持文字拦截功能,因此不触发onWillInsert、onDidInsert、onWillDelete、onDidDelete回调。
505e41f4b71Sopenharmony_ci
506e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_ci**参数:** 
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                               |
513e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------- |
514e41f4b71Sopenharmony_ci| enable | boolean | 是   | 是否开启输入预上屏。<br/>默认值:true |
515e41f4b71Sopenharmony_ci
516e41f4b71Sopenharmony_ci>  **说明:**
517e41f4b71Sopenharmony_ci>
518e41f4b71Sopenharmony_ci>  该接口在CAPI场景使用时下,默认关闭。可以在工程的module.json5中配置[metadata](../../../../application-dev/quick-start/module-structure.md#metadata对象内部结构)字段控制是否启用预上屏,配置如下:
519e41f4b71Sopenharmony_ci> ```json
520e41f4b71Sopenharmony_ci> "metadata": [
521e41f4b71Sopenharmony_ci>  {
522e41f4b71Sopenharmony_ci>     "name": "can_preview_text",
523e41f4b71Sopenharmony_ci>     "value": "true",
524e41f4b71Sopenharmony_ci>  }
525e41f4b71Sopenharmony_ci> ]
526e41f4b71Sopenharmony_ci> ```
527e41f4b71Sopenharmony_ci
528e41f4b71Sopenharmony_ci### enableHapticFeedback<sup>13+</sup>
529e41f4b71Sopenharmony_ci
530e41f4b71Sopenharmony_cienableHapticFeedback(isEnabled: boolean)
531e41f4b71Sopenharmony_ci
532e41f4b71Sopenharmony_ci设置是否开启触控反馈。
533e41f4b71Sopenharmony_ci
534e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
535e41f4b71Sopenharmony_ci
536e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
537e41f4b71Sopenharmony_ci
538e41f4b71Sopenharmony_ci**参数:** 
539e41f4b71Sopenharmony_ci
540e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                               |
541e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ---------------------------------- |
542e41f4b71Sopenharmony_ci| isEnabled | boolean | 是   | 是否开启触控反馈。<br/>默认值:true |
543e41f4b71Sopenharmony_ci
544e41f4b71Sopenharmony_ci>  **说明:**
545e41f4b71Sopenharmony_ci>
546e41f4b71Sopenharmony_ci>  开启触控反馈时,需要在工程的module.json5中配置requestPermissions字段开启振动权限,配置如下:
547e41f4b71Sopenharmony_ci> ```json
548e41f4b71Sopenharmony_ci> "requestPermissions": [
549e41f4b71Sopenharmony_ci>  {
550e41f4b71Sopenharmony_ci>     "name": "ohos.permission.VIBRATE",
551e41f4b71Sopenharmony_ci>  }
552e41f4b71Sopenharmony_ci> ]
553e41f4b71Sopenharmony_ci> ```
554e41f4b71Sopenharmony_ci
555e41f4b71Sopenharmony_ci## IconOptions<sup>10+</sup>对象说明
556e41f4b71Sopenharmony_ci
557e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
558e41f4b71Sopenharmony_ci
559e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
560e41f4b71Sopenharmony_ci
561e41f4b71Sopenharmony_ci| 名称 | 类型                                   | 必填 | 说明    |
562e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ----------- |
563e41f4b71Sopenharmony_ci| size   | [Length](ts-types.md#length)               | 否   | 图标尺寸,不支持百分比。    |
564e41f4b71Sopenharmony_ci| color  | [ResourceColor](ts-types.md#resourcecolor) | 否   | 图标颜色。    |
565e41f4b71Sopenharmony_ci| src    | [ResourceStr](ts-types.md#resourcestr)     | 否   | 图标/图片源。 |
566e41f4b71Sopenharmony_ci
567e41f4b71Sopenharmony_ci## SearchButtonOptions<sup>10+</sup>对象说明
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
570e41f4b71Sopenharmony_ci
571e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
572e41f4b71Sopenharmony_ci
573e41f4b71Sopenharmony_ci| 名称    | 类型                                   | 必填 | 说明         |
574e41f4b71Sopenharmony_ci| --------- | ------------------------------------------ | ---- | ---------------- |
575e41f4b71Sopenharmony_ci| fontSize  | [Length](ts-types.md#length)               | 否   | 文本按钮字体大小,不支持百分比。 |
576e41f4b71Sopenharmony_ci| fontColor | [ResourceColor](ts-types.md#resourcecolor) | 否   | 文本按钮字体颜色。 |
577e41f4b71Sopenharmony_ci
578e41f4b71Sopenharmony_ci## CancelButtonStyle<sup>10+</sup>枚举说明
579e41f4b71Sopenharmony_ci
580e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
581e41f4b71Sopenharmony_ci
582e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
583e41f4b71Sopenharmony_ci
584e41f4b71Sopenharmony_ci| 名称                    | 说明        |
585e41f4b71Sopenharmony_ci| ----------------------- | ---------------- |
586e41f4b71Sopenharmony_ci| CONSTANT  | 清除按钮常显样式。 |
587e41f4b71Sopenharmony_ci| INVISIBLE | 清除按钮常隐样式。 |
588e41f4b71Sopenharmony_ci| INPUT     | 清除按钮输入样式。 |
589e41f4b71Sopenharmony_ci
590e41f4b71Sopenharmony_ci## SearchType<sup>11+</sup>枚举说明
591e41f4b71Sopenharmony_ci
592e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
595e41f4b71Sopenharmony_ci
596e41f4b71Sopenharmony_ci| 名称                 | 值            | 说明          |
597e41f4b71Sopenharmony_ci| ------------------ | ------ | ------------- |
598e41f4b71Sopenharmony_ci| NORMAL   | 0 | 基本输入模式。<br/>支持输入数字、字母、下划线、空格、特殊字符。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
599e41f4b71Sopenharmony_ci| NUMBER   | 2 | 纯数字输入模式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。      |
600e41f4b71Sopenharmony_ci| PHONE_NUMBER | 3 | 电话号码输入模式。<br/>支持输入数字、空格、+ 、-、*、#、(、),长度不限。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
601e41f4b71Sopenharmony_ci| EMAIL    | 5 | 邮箱地址输入模式。<br/>支持数字,字母,下划线、小数点、!、#、$、%、&、'、*、+、-、/、=、?、^、`、\{、\|、\}、~,以及@字符(只能存在一个@字符)。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
602e41f4b71Sopenharmony_ci| NUMBER_DECIMAL<sup>12+</sup>  | 12 | 带小数点的数字输入模式。<br/>支持数字,小数点(只能存在一个小数点)。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
603e41f4b71Sopenharmony_ci| URL<sup>12+</sup>  | 13 | 带URL的输入模式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
604e41f4b71Sopenharmony_ci
605e41f4b71Sopenharmony_ci## CancelButtonOptions<sup>12+</sup>对象说明
606e41f4b71Sopenharmony_ci
607e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_ci| 名称    | 类型                                   | 必填 | 说明         |
612e41f4b71Sopenharmony_ci| --------- | ------------------------------------------ | ---- | ---------------- |
613e41f4b71Sopenharmony_ci| style  | [CancelButtonStyle](#cancelbuttonstyle10枚举说明)               | 否   | 右侧清除按钮显示状态。 |
614e41f4b71Sopenharmony_ci| icon | [IconOptions](#iconoptions10对象说明) | 否   | 右侧清除按钮图标。 |
615e41f4b71Sopenharmony_ci
616e41f4b71Sopenharmony_ci## CancelButtonSymbolOptions<sup>12+</sup>对象说明
617e41f4b71Sopenharmony_ci
618e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
621e41f4b71Sopenharmony_ci
622e41f4b71Sopenharmony_ci| 名称    | 类型                                   | 必填 | 说明         |
623e41f4b71Sopenharmony_ci| --------- | ------------------------------------------ | ---- | ---------------- |
624e41f4b71Sopenharmony_ci| style  | [CancelButtonStyle](#cancelbuttonstyle10枚举说明)               | 否   | 右侧清除按钮显示状态。 |
625e41f4b71Sopenharmony_ci| icon | [SymbolGlyphModifier](ts-universal-attributes-attribute-modifier.md) | 否   | 右侧清除按钮Symbol图标。 |
626e41f4b71Sopenharmony_ci
627e41f4b71Sopenharmony_ci## 事件
628e41f4b71Sopenharmony_ci
629e41f4b71Sopenharmony_ci除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
630e41f4b71Sopenharmony_ci
631e41f4b71Sopenharmony_ci### onSubmit
632e41f4b71Sopenharmony_ci
633e41f4b71Sopenharmony_cionSubmit(callback: (value: string) => void)
634e41f4b71Sopenharmony_ci
635e41f4b71Sopenharmony_ci点击搜索图标、搜索按钮或者按下软键盘搜索按钮时触发该回调。
636e41f4b71Sopenharmony_ci
637e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
640e41f4b71Sopenharmony_ci
641e41f4b71Sopenharmony_ci**参数:** 
642e41f4b71Sopenharmony_ci
643e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                         |
644e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------------- |
645e41f4b71Sopenharmony_ci| value  | string | 是   | 当前搜索框中输入的文本内容。 |
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci### onChange
648e41f4b71Sopenharmony_ci
649e41f4b71Sopenharmony_cionChange(callback:&nbsp;EditableTextOnChangeCallback)
650e41f4b71Sopenharmony_ci
651e41f4b71Sopenharmony_ci输入内容发生变化时,触发该回调。
652e41f4b71Sopenharmony_ci
653e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
654e41f4b71Sopenharmony_ci
655e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
656e41f4b71Sopenharmony_ci
657e41f4b71Sopenharmony_ci**参数:** 
658e41f4b71Sopenharmony_ci
659e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                         |
660e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------------- |
661e41f4b71Sopenharmony_ci| callback  | [EditableTextOnChangeCallback](ts-text-common.md#editabletextonchangecallback12) | 是   | 当前输入文本内容变化时的回调。 |
662e41f4b71Sopenharmony_ci
663e41f4b71Sopenharmony_ci### onCopy
664e41f4b71Sopenharmony_ci
665e41f4b71Sopenharmony_cionCopy(callback: (value: string) => void)
666e41f4b71Sopenharmony_ci
667e41f4b71Sopenharmony_ci进行复制操作时,触发该回调。
668e41f4b71Sopenharmony_ci
669e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
670e41f4b71Sopenharmony_ci
671e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
672e41f4b71Sopenharmony_ci
673e41f4b71Sopenharmony_ci**参数:** 
674e41f4b71Sopenharmony_ci
675e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明             |
676e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------- |
677e41f4b71Sopenharmony_ci| value  | string | 是   | 复制的文本内容。 |
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ci### onCut
680e41f4b71Sopenharmony_ci
681e41f4b71Sopenharmony_cionCut(callback: (value: string) => void)
682e41f4b71Sopenharmony_ci
683e41f4b71Sopenharmony_ci进行剪切操作时,触发该回调。
684e41f4b71Sopenharmony_ci
685e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
686e41f4b71Sopenharmony_ci
687e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
688e41f4b71Sopenharmony_ci
689e41f4b71Sopenharmony_ci**参数:** 
690e41f4b71Sopenharmony_ci
691e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明             |
692e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------- |
693e41f4b71Sopenharmony_ci| value  | string | 是   | 剪切的文本内容。 |
694e41f4b71Sopenharmony_ci
695e41f4b71Sopenharmony_ci### onPaste
696e41f4b71Sopenharmony_ci
697e41f4b71Sopenharmony_cionPaste(callback: (value: string, event: PasteEvent) => void)
698e41f4b71Sopenharmony_ci
699e41f4b71Sopenharmony_ci进行粘贴操作时,触发该回调。
700e41f4b71Sopenharmony_ci
701e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
702e41f4b71Sopenharmony_ci
703e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
704e41f4b71Sopenharmony_ci
705e41f4b71Sopenharmony_ci**参数:** 
706e41f4b71Sopenharmony_ci
707e41f4b71Sopenharmony_ci| 参数名              | 类型                                                         | 必填 | 说明                   |
708e41f4b71Sopenharmony_ci| ------------------- | ------------------------------------------------------------ | ---- | ---------------------- |
709e41f4b71Sopenharmony_ci| value               | string                                                       | 是   | 粘贴的文本内容。       |
710e41f4b71Sopenharmony_ci| event<sup>11+</sup> | [PasteEvent](ts-basic-components-richeditor.md#pasteevent11) | 是   | 用户自定义的粘贴事件。 |
711e41f4b71Sopenharmony_ci
712e41f4b71Sopenharmony_ci### onTextSelectionChange<sup>10+</sup>
713e41f4b71Sopenharmony_ci
714e41f4b71Sopenharmony_cionTextSelectionChange(callback: (selectionStart: number, selectionEnd: number) => void)
715e41f4b71Sopenharmony_ci
716e41f4b71Sopenharmony_ci文本选择的位置发生变化或编辑状态下光标位置发生变化时,触发该回调。
717e41f4b71Sopenharmony_ci
718e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
719e41f4b71Sopenharmony_ci
720e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
721e41f4b71Sopenharmony_ci
722e41f4b71Sopenharmony_ci**参数:** 
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ci| 参数名         | 类型   | 必填 | 说明                                              |
725e41f4b71Sopenharmony_ci| -------------- | ------ | ---- | ------------------------------------------------- |
726e41f4b71Sopenharmony_ci| selectionStart | number | 是   | 文本选择区域起始位置,文本框中文字的起始位置为0。 |
727e41f4b71Sopenharmony_ci| selectionEnd   | number | 是   | 文本选择区域结束位置。                            |
728e41f4b71Sopenharmony_ci
729e41f4b71Sopenharmony_ci### onContentScroll<sup>10+</sup>
730e41f4b71Sopenharmony_ci
731e41f4b71Sopenharmony_cionContentScroll(callback: (totalOffsetX: number, totalOffsetY: number) => void)
732e41f4b71Sopenharmony_ci
733e41f4b71Sopenharmony_ci文本内容滚动时,触发该回调。
734e41f4b71Sopenharmony_ci
735e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
736e41f4b71Sopenharmony_ci
737e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci**参数:** 
740e41f4b71Sopenharmony_ci
741e41f4b71Sopenharmony_ci| 参数名       | 类型   | 必填 | 说明                               |
742e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---------------------------------- |
743e41f4b71Sopenharmony_ci| totalOffsetX | number | 是   | 文本在内容区的横坐标偏移,单位px。 |
744e41f4b71Sopenharmony_ci| totalOffsetY | number | 是   | 文本在内容区的纵坐标偏移,单位px。 |
745e41f4b71Sopenharmony_ci
746e41f4b71Sopenharmony_ci### onEditChange<sup>12+</sup>
747e41f4b71Sopenharmony_ci
748e41f4b71Sopenharmony_cionEditChange(callback:&nbsp;Callback<&nbsp;boolean&nbsp;>)
749e41f4b71Sopenharmony_ci
750e41f4b71Sopenharmony_ci输入状态变化时,触发该回调。有光标时为编辑态,无光标时为非编辑态。isEditing为true表示正在输入。
751e41f4b71Sopenharmony_ci
752e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
753e41f4b71Sopenharmony_ci
754e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
755e41f4b71Sopenharmony_ci
756e41f4b71Sopenharmony_ci**参数:**
757e41f4b71Sopenharmony_ci
758e41f4b71Sopenharmony_ci| 参数名    | 类型                                | 必填 | 说明                 |
759e41f4b71Sopenharmony_ci| --------- | ---------------------------------- | ---- | -------------------- |
760e41f4b71Sopenharmony_ci| isEditing | &nbsp;Callback<&nbsp;boolean&nbsp;> | 是   | 为true表示正在输入。 |
761e41f4b71Sopenharmony_ci
762e41f4b71Sopenharmony_ci### onWillInsert<sup>12+</sup>
763e41f4b71Sopenharmony_ci
764e41f4b71Sopenharmony_cionWillInsert(callback: Callback\<InsertValue, boolean>)
765e41f4b71Sopenharmony_ci
766e41f4b71Sopenharmony_ci在将要输入时,触发该回调。
767e41f4b71Sopenharmony_ci
768e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
769e41f4b71Sopenharmony_ci
770e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
771e41f4b71Sopenharmony_ci
772e41f4b71Sopenharmony_ci**参数:**
773e41f4b71Sopenharmony_ci
774e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
775e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
776e41f4b71Sopenharmony_ci| callback  | Callback\<[InsertValue](ts-text-common.md#insertvalue12对象说明), boolean> | 是   | 在将要输入时调用的回调。<br/>在返回true时,表示正常插入,返回false时,表示不插入。<br/>在预上屏操作时,该回调不触发。<br/>仅支持系统输入法输入的场景。 |
777e41f4b71Sopenharmony_ci
778e41f4b71Sopenharmony_ci### onDidInsert<sup>12+</sup>
779e41f4b71Sopenharmony_ci
780e41f4b71Sopenharmony_cionDidInsert(callback: Callback\<InsertValue>)
781e41f4b71Sopenharmony_ci
782e41f4b71Sopenharmony_ci在输入完成时,触发该回调。
783e41f4b71Sopenharmony_ci
784e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
785e41f4b71Sopenharmony_ci
786e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
787e41f4b71Sopenharmony_ci
788e41f4b71Sopenharmony_ci**参数:**
789e41f4b71Sopenharmony_ci
790e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
791e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
792e41f4b71Sopenharmony_ci| callback  | Callback\<[InsertValue](ts-text-common.md#insertvalue12对象说明)> | 是   | 在输入完成时调用的回调。<br/>仅支持系统输入法输入的场景。 |
793e41f4b71Sopenharmony_ci
794e41f4b71Sopenharmony_ci### onWillDelete<sup>12+</sup>
795e41f4b71Sopenharmony_ci
796e41f4b71Sopenharmony_cionWillDelete(callback: Callback\<DeleteValue, boolean>)
797e41f4b71Sopenharmony_ci
798e41f4b71Sopenharmony_ci在将要删除时,触发该回调。
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| callback  | Callback\<[DeleteValue](ts-text-common.md#deletevalue12对象说明), boolean> | 是   | 在将要删除时调用的回调。<br/>在返回true时,表示正常删除,返回false时,表示不删除。<br/>在预上屏删除操作时,该回调不触发。<br/>仅支持系统输入法输入的场景。 |
809e41f4b71Sopenharmony_ci
810e41f4b71Sopenharmony_ci### onDidDelete<sup>12+</sup>
811e41f4b71Sopenharmony_ci
812e41f4b71Sopenharmony_cionDidDelete(callback: Callback\<DeleteValue>)
813e41f4b71Sopenharmony_ci
814e41f4b71Sopenharmony_ci在删除完成时,触发该回调。
815e41f4b71Sopenharmony_ci
816e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
817e41f4b71Sopenharmony_ci
818e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
819e41f4b71Sopenharmony_ci
820e41f4b71Sopenharmony_ci**参数:**
821e41f4b71Sopenharmony_ci
822e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明               |
823e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ------------------ |
824e41f4b71Sopenharmony_ci| callback  | Callback\<[DeleteValue](ts-text-common.md#deletevalue12对象说明)> | 是   | 在删除完成时调用的回调。<br/>仅支持系统输入法输入的场景。 |
825e41f4b71Sopenharmony_ci
826e41f4b71Sopenharmony_ci## SearchController
827e41f4b71Sopenharmony_ci
828e41f4b71Sopenharmony_ciSearch组件的控制器继承自[TextContentControllerBase](ts-types.md#textcontentcontrollerbase10)。
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci### 导入对象
831e41f4b71Sopenharmony_ci```
832e41f4b71Sopenharmony_cicontroller: SearchController = new SearchController()
833e41f4b71Sopenharmony_ci```
834e41f4b71Sopenharmony_ci
835e41f4b71Sopenharmony_ci### constructor<sup>8+</sup>
836e41f4b71Sopenharmony_ci
837e41f4b71Sopenharmony_ciconstructor()
838e41f4b71Sopenharmony_ci
839e41f4b71Sopenharmony_ciSearchController的构造函数。
840e41f4b71Sopenharmony_ci
841e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
842e41f4b71Sopenharmony_ci
843e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
844e41f4b71Sopenharmony_ci
845e41f4b71Sopenharmony_ci### caretPosition<sup>8+</sup>
846e41f4b71Sopenharmony_ci
847e41f4b71Sopenharmony_cicaretPosition(value: number): void
848e41f4b71Sopenharmony_ci
849e41f4b71Sopenharmony_ci设置输入光标的位置。
850e41f4b71Sopenharmony_ci
851e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
852e41f4b71Sopenharmony_ci
853e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
854e41f4b71Sopenharmony_ci
855e41f4b71Sopenharmony_ci**参数:**
856e41f4b71Sopenharmony_ci
857e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                           |
858e41f4b71Sopenharmony_ci| ------ | -------- | ---- | ---------------------------------- |
859e41f4b71Sopenharmony_ci| value  | number   | 是   | 从字符串开始到光标所在位置的长度。 |
860e41f4b71Sopenharmony_ci
861e41f4b71Sopenharmony_ci### stopEditing<sup>10+</sup>
862e41f4b71Sopenharmony_ci
863e41f4b71Sopenharmony_cistopEditing(): void
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_ci退出编辑态。
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci### setTextSelection<sup>12+</sup>
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_cisetTextSelection(selectionStart: number, selectionEnd: number, options?: SelectionOptions): void;
874e41f4b71Sopenharmony_ci
875e41f4b71Sopenharmony_ci组件在获焦状态下,调用该接口设置文本选择区域并高亮显示,且只有在selectionStart小于selectionEnd时,文字才会被选取、高亮显示。
876e41f4b71Sopenharmony_ci
877e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
878e41f4b71Sopenharmony_ci
879e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
880e41f4b71Sopenharmony_ci
881e41f4b71Sopenharmony_ci**参数:**
882e41f4b71Sopenharmony_ci
883e41f4b71Sopenharmony_ci| 参数名         | 类型 | 必填 | 说明   |
884e41f4b71Sopenharmony_ci| -------------- | -------- | ---- | -------- |
885e41f4b71Sopenharmony_ci| selectionStart | number   | 是   | 文本选择区域起始位置,文本框中文字的起始位置为0。<br/>当selectionStart小于0时、按照0处理;当selectionStart大于文字最大长度时、按照文字最大长度处理。<br/> |
886e41f4b71Sopenharmony_ci| selectionEnd   | number   | 是   | 文本选择区域结束位置。<br/>当selectionEnd小于0时、按照0处理;当selectionEnd大于文字最大长度时、按照文字最大长度处理。<br/> |
887e41f4b71Sopenharmony_ci| options | [SelectionOptions](ts-types.md#selectionoptions12对象说明) | 否    | 选中文字时的配置。<br />默认值:MenuPolicy.DEFAULT。 |
888e41f4b71Sopenharmony_ci
889e41f4b71Sopenharmony_ci>  **说明:**
890e41f4b71Sopenharmony_ci>
891e41f4b71Sopenharmony_ci>  如果selectionStart或selectionEnd被赋值为undefined时,当作0处理。
892e41f4b71Sopenharmony_ci>
893e41f4b71Sopenharmony_ci>  如果selectionMenuHidden被赋值为true或设备为2in1时,即使options被赋值为MenuPolicy.SHOW,调用setTextSelection也不弹出菜单。
894e41f4b71Sopenharmony_ci>
895e41f4b71Sopenharmony_ci>  如果选中的文本含有emoji表情时,表情的起始位置包含在设置的文本选中区域内就会被选中。
896e41f4b71Sopenharmony_ci
897e41f4b71Sopenharmony_ci##  示例
898e41f4b71Sopenharmony_ci
899e41f4b71Sopenharmony_ci### 示例1
900e41f4b71Sopenharmony_ciSearch基本使用示例。
901e41f4b71Sopenharmony_ci```ts
902e41f4b71Sopenharmony_ci// xxx.ets
903e41f4b71Sopenharmony_ci@Entry
904e41f4b71Sopenharmony_ci@Component
905e41f4b71Sopenharmony_cistruct SearchExample {
906e41f4b71Sopenharmony_ci  @State changeValue: string = ''
907e41f4b71Sopenharmony_ci  @State submitValue: string = ''
908e41f4b71Sopenharmony_ci  @State positionInfo: CaretOffset = { index: 0, x: 0, y: 0 }
909e41f4b71Sopenharmony_ci  controller: SearchController = new SearchController()
910e41f4b71Sopenharmony_ci
911e41f4b71Sopenharmony_ci  build() {
912e41f4b71Sopenharmony_ci    Column({space: 10}) {
913e41f4b71Sopenharmony_ci      Text('onSubmit:' + this.submitValue).fontSize(18).margin(15)
914e41f4b71Sopenharmony_ci      Text('onChange:' + this.changeValue).fontSize(18).margin(15)
915e41f4b71Sopenharmony_ci      Search({ value: this.changeValue, placeholder: 'Type to search...', controller: this.controller })
916e41f4b71Sopenharmony_ci        .searchButton('SEARCH')
917e41f4b71Sopenharmony_ci        .width('95%')
918e41f4b71Sopenharmony_ci        .height(40)
919e41f4b71Sopenharmony_ci        .backgroundColor('#F5F5F5')
920e41f4b71Sopenharmony_ci        .placeholderColor(Color.Grey)
921e41f4b71Sopenharmony_ci        .placeholderFont({ size: 14, weight: 400 })
922e41f4b71Sopenharmony_ci        .textFont({ size: 14, weight: 400 })
923e41f4b71Sopenharmony_ci        .onSubmit((value: string) => {
924e41f4b71Sopenharmony_ci          this.submitValue = value
925e41f4b71Sopenharmony_ci        })
926e41f4b71Sopenharmony_ci        .onChange((value: string) => {
927e41f4b71Sopenharmony_ci          this.changeValue = value
928e41f4b71Sopenharmony_ci        })
929e41f4b71Sopenharmony_ci        .margin(20)
930e41f4b71Sopenharmony_ci      Button('Set caretPosition 1')
931e41f4b71Sopenharmony_ci        .onClick(() => {
932e41f4b71Sopenharmony_ci          // 设置光标位置到输入的第一个字符后
933e41f4b71Sopenharmony_ci          this.controller.caretPosition(1)
934e41f4b71Sopenharmony_ci        })
935e41f4b71Sopenharmony_ci      Button('Get CaretOffset')
936e41f4b71Sopenharmony_ci        .onClick(() => {
937e41f4b71Sopenharmony_ci          this.positionInfo = this.controller.getCaretOffset()
938e41f4b71Sopenharmony_ci        })
939e41f4b71Sopenharmony_ci    }.width('100%')
940e41f4b71Sopenharmony_ci  }
941e41f4b71Sopenharmony_ci}
942e41f4b71Sopenharmony_ci```
943e41f4b71Sopenharmony_ci
944e41f4b71Sopenharmony_ci![search](figures/search.gif)
945e41f4b71Sopenharmony_ci
946e41f4b71Sopenharmony_ci### 示例2
947e41f4b71Sopenharmony_cisearchButton、searchIcon、cancelButton属性接口使用示例。
948e41f4b71Sopenharmony_ci```ts
949e41f4b71Sopenharmony_ci// xxx.ets
950e41f4b71Sopenharmony_ci@Entry
951e41f4b71Sopenharmony_ci@Component
952e41f4b71Sopenharmony_cistruct SearchExample {
953e41f4b71Sopenharmony_ci  @State changeValue: string = ''
954e41f4b71Sopenharmony_ci  @State submitValue: string = ''
955e41f4b71Sopenharmony_ci
956e41f4b71Sopenharmony_ci  build() {
957e41f4b71Sopenharmony_ci    Column() {
958e41f4b71Sopenharmony_ci      Text('onSubmit:' + this.submitValue).fontSize(18).margin(15)
959e41f4b71Sopenharmony_ci      Search({ value: this.changeValue, placeholder: 'Type to search...' })
960e41f4b71Sopenharmony_ci        .searchButton('SEARCH')
961e41f4b71Sopenharmony_ci        .searchIcon({
962e41f4b71Sopenharmony_ci          src: $r('app.media.search')
963e41f4b71Sopenharmony_ci        })
964e41f4b71Sopenharmony_ci        .cancelButton({
965e41f4b71Sopenharmony_ci          style: CancelButtonStyle.CONSTANT,
966e41f4b71Sopenharmony_ci          icon: {
967e41f4b71Sopenharmony_ci            src: $r('app.media.cancel')
968e41f4b71Sopenharmony_ci          }
969e41f4b71Sopenharmony_ci        })
970e41f4b71Sopenharmony_ci        .width('90%')
971e41f4b71Sopenharmony_ci        .height(40)
972e41f4b71Sopenharmony_ci        .maxLength(20)
973e41f4b71Sopenharmony_ci        .backgroundColor('#F5F5F5')
974e41f4b71Sopenharmony_ci        .placeholderColor(Color.Grey)
975e41f4b71Sopenharmony_ci        .placeholderFont({ size: 14, weight: 400 })
976e41f4b71Sopenharmony_ci        .textFont({ size: 14, weight: 400 })
977e41f4b71Sopenharmony_ci        .onSubmit((value: string) => {
978e41f4b71Sopenharmony_ci          this.submitValue = value
979e41f4b71Sopenharmony_ci        })
980e41f4b71Sopenharmony_ci        .onChange((value: string) => {
981e41f4b71Sopenharmony_ci          this.changeValue = value
982e41f4b71Sopenharmony_ci        })
983e41f4b71Sopenharmony_ci        .margin(20)
984e41f4b71Sopenharmony_ci    }.width('100%')
985e41f4b71Sopenharmony_ci  }
986e41f4b71Sopenharmony_ci}
987e41f4b71Sopenharmony_ci```
988e41f4b71Sopenharmony_ci
989e41f4b71Sopenharmony_ci![searchButton](figures/searchButton.gif)
990e41f4b71Sopenharmony_ci
991e41f4b71Sopenharmony_ci
992e41f4b71Sopenharmony_ci### 示例3
993e41f4b71Sopenharmony_ciSearch绑定自定义键盘使用示例。
994e41f4b71Sopenharmony_ci```ts
995e41f4b71Sopenharmony_ci// xxx.ets
996e41f4b71Sopenharmony_ci@Entry
997e41f4b71Sopenharmony_ci@Component
998e41f4b71Sopenharmony_cistruct SearchExample {
999e41f4b71Sopenharmony_ci  controller: SearchController = new SearchController()
1000e41f4b71Sopenharmony_ci  @State inputValue: string = ""
1001e41f4b71Sopenharmony_ci
1002e41f4b71Sopenharmony_ci  // 自定义键盘组件
1003e41f4b71Sopenharmony_ci  @Builder CustomKeyboardBuilder() {
1004e41f4b71Sopenharmony_ci    Column() {
1005e41f4b71Sopenharmony_ci      Button('x').onClick(() => {
1006e41f4b71Sopenharmony_ci        // 关闭自定义键盘
1007e41f4b71Sopenharmony_ci        this.controller.stopEditing()
1008e41f4b71Sopenharmony_ci      })
1009e41f4b71Sopenharmony_ci      Grid() {
1010e41f4b71Sopenharmony_ci        ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'], (item: number | string) => {
1011e41f4b71Sopenharmony_ci          GridItem() {
1012e41f4b71Sopenharmony_ci            Button(item + "")
1013e41f4b71Sopenharmony_ci              .width(110).onClick(() => {
1014e41f4b71Sopenharmony_ci              this.inputValue += item
1015e41f4b71Sopenharmony_ci            })
1016e41f4b71Sopenharmony_ci          }
1017e41f4b71Sopenharmony_ci        })
1018e41f4b71Sopenharmony_ci      }.maxCount(3).columnsGap(10).rowsGap(10).padding(5)
1019e41f4b71Sopenharmony_ci    }.backgroundColor(Color.Gray)
1020e41f4b71Sopenharmony_ci  }
1021e41f4b71Sopenharmony_ci
1022e41f4b71Sopenharmony_ci  build() {
1023e41f4b71Sopenharmony_ci    Column() {
1024e41f4b71Sopenharmony_ci      Search({ controller: this.controller, value: this.inputValue})
1025e41f4b71Sopenharmony_ci        // 绑定自定义键盘
1026e41f4b71Sopenharmony_ci        .customKeyboard(this.CustomKeyboardBuilder()).margin(10).border({ width: 1 })
1027e41f4b71Sopenharmony_ci    }
1028e41f4b71Sopenharmony_ci  }
1029e41f4b71Sopenharmony_ci}
1030e41f4b71Sopenharmony_ci```
1031e41f4b71Sopenharmony_ci
1032e41f4b71Sopenharmony_ci![customKeyboard](figures/searchCustomKeyboard.png)
1033e41f4b71Sopenharmony_ci
1034e41f4b71Sopenharmony_ci### 示例4
1035e41f4b71Sopenharmony_cienterKeyType属性接口使用示例。
1036e41f4b71Sopenharmony_ci```ts
1037e41f4b71Sopenharmony_ci// xxx.ets
1038e41f4b71Sopenharmony_ci@Entry
1039e41f4b71Sopenharmony_ci@Component
1040e41f4b71Sopenharmony_cistruct SearchExample {
1041e41f4b71Sopenharmony_ci  @State text: string = ''
1042e41f4b71Sopenharmony_ci  @State enterTypes: Array<EnterKeyType> = [EnterKeyType.Go, EnterKeyType.Search, EnterKeyType.Send, EnterKeyType.Done, EnterKeyType.Next, EnterKeyType.PREVIOUS, EnterKeyType.NEW_LINE]
1043e41f4b71Sopenharmony_ci  @State index: number = 0
1044e41f4b71Sopenharmony_ci  build() {
1045e41f4b71Sopenharmony_ci    Column({ space: 20 }) {
1046e41f4b71Sopenharmony_ci      Search({ placeholder: '请输入文本', value: this.text })
1047e41f4b71Sopenharmony_ci        .width(380)
1048e41f4b71Sopenharmony_ci        .enterKeyType(this.enterTypes[this.index])
1049e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1050e41f4b71Sopenharmony_ci          this.text = value
1051e41f4b71Sopenharmony_ci        })
1052e41f4b71Sopenharmony_ci        .onSubmit((value: String) => {
1053e41f4b71Sopenharmony_ci          console.log("trigger search onsubmit" + value);
1054e41f4b71Sopenharmony_ci        })
1055e41f4b71Sopenharmony_ci
1056e41f4b71Sopenharmony_ci      Button('改变EnterKeyType').onClick(() => {
1057e41f4b71Sopenharmony_ci        this.index = (this.index + 1) % this.enterTypes.length;
1058e41f4b71Sopenharmony_ci      })
1059e41f4b71Sopenharmony_ci    }.width('100%')
1060e41f4b71Sopenharmony_ci  }
1061e41f4b71Sopenharmony_ci}
1062e41f4b71Sopenharmony_ci```
1063e41f4b71Sopenharmony_ci
1064e41f4b71Sopenharmony_ci![searchEnterKeyType](figures/searchEnterKey.gif)
1065e41f4b71Sopenharmony_ci
1066e41f4b71Sopenharmony_ci### 示例5
1067e41f4b71Sopenharmony_ci
1068e41f4b71Sopenharmony_ci该示例实现了使用lineHeight设置文本的文本行高,使用letterSpacing设置文本字符间距,使用decoration设置文本装饰线样式。
1069e41f4b71Sopenharmony_ci
1070e41f4b71Sopenharmony_ci```ts
1071e41f4b71Sopenharmony_ci// xxx.ets
1072e41f4b71Sopenharmony_ci@Entry
1073e41f4b71Sopenharmony_ci@Component
1074e41f4b71Sopenharmony_cistruct SearchExample {
1075e41f4b71Sopenharmony_ci  build() {
1076e41f4b71Sopenharmony_ci    Row() {
1077e41f4b71Sopenharmony_ci      Column() {
1078e41f4b71Sopenharmony_ci        Text('lineHeight').fontSize(9).fontColor(0xCCCCCC)
1079e41f4b71Sopenharmony_ci        Search({value: 'lineHeight unset'})
1080e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10)
1081e41f4b71Sopenharmony_ci        Search({value: 'lineHeight 15'})
1082e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10).lineHeight(15)
1083e41f4b71Sopenharmony_ci        Search({value: 'lineHeight 30'})
1084e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(10).lineHeight(30)
1085e41f4b71Sopenharmony_ci
1086e41f4b71Sopenharmony_ci        Text('letterSpacing').fontSize(9).fontColor(0xCCCCCC)
1087e41f4b71Sopenharmony_ci        Search({value: 'letterSpacing 0'})
1088e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).letterSpacing(0)
1089e41f4b71Sopenharmony_ci        Search({value: 'letterSpacing 3'})
1090e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).letterSpacing(3)
1091e41f4b71Sopenharmony_ci        Search({value: 'letterSpacing -1'})
1092e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5).letterSpacing(-1)
1093e41f4b71Sopenharmony_ci
1094e41f4b71Sopenharmony_ci        Text('decoration').fontSize(9).fontColor(0xCCCCCC)
1095e41f4b71Sopenharmony_ci        Search({value: 'LineThrough, Red'})
1096e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5)
1097e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.LineThrough, color: Color.Red})
1098e41f4b71Sopenharmony_ci        Search({value: 'Overline, Red, DOTTED'})
1099e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5)
1100e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.Overline, color: Color.Red, style: TextDecorationStyle.DOTTED})
1101e41f4b71Sopenharmony_ci        Search({value: 'Underline, Red, WAVY'})
1102e41f4b71Sopenharmony_ci          .border({ width: 1 }).padding(5)
1103e41f4b71Sopenharmony_ci          .decoration({type: TextDecorationType.Underline, color: Color.Red, style: TextDecorationStyle.WAVY})
1104e41f4b71Sopenharmony_ci      }.height('90%')
1105e41f4b71Sopenharmony_ci    }
1106e41f4b71Sopenharmony_ci    .width('90%')
1107e41f4b71Sopenharmony_ci    .margin(10)
1108e41f4b71Sopenharmony_ci  }
1109e41f4b71Sopenharmony_ci}
1110e41f4b71Sopenharmony_ci
1111e41f4b71Sopenharmony_ci```
1112e41f4b71Sopenharmony_ci
1113e41f4b71Sopenharmony_ci![SearchDecoration](figures/search_decoration.png)
1114e41f4b71Sopenharmony_ci
1115e41f4b71Sopenharmony_ci### 示例6
1116e41f4b71Sopenharmony_cifontFeature属性使用示例,对比了fontFeature使用ss01属性和不使用ss01属性的效果。
1117e41f4b71Sopenharmony_ci
1118e41f4b71Sopenharmony_ci```ts
1119e41f4b71Sopenharmony_ci@Entry
1120e41f4b71Sopenharmony_ci@Component
1121e41f4b71Sopenharmony_cistruct search {
1122e41f4b71Sopenharmony_ci  @State text1: string = 'This is ss01 on : 0123456789'
1123e41f4b71Sopenharmony_ci  @State text2: string = 'This is ss01 off: 0123456789'
1124e41f4b71Sopenharmony_ci
1125e41f4b71Sopenharmony_ci  build() {
1126e41f4b71Sopenharmony_ci    Column(){
1127e41f4b71Sopenharmony_ci      Search({value: this.text1})
1128e41f4b71Sopenharmony_ci        .margin({top:200})
1129e41f4b71Sopenharmony_ci        .fontFeature("\"ss01\" on")
1130e41f4b71Sopenharmony_ci      Search({value: this.text2})
1131e41f4b71Sopenharmony_ci        .margin({top:10})
1132e41f4b71Sopenharmony_ci        .fontFeature("\"ss01\" off")
1133e41f4b71Sopenharmony_ci    }
1134e41f4b71Sopenharmony_ci    .width("90%")
1135e41f4b71Sopenharmony_ci    .margin("5%")
1136e41f4b71Sopenharmony_ci  }
1137e41f4b71Sopenharmony_ci}
1138e41f4b71Sopenharmony_ci```
1139e41f4b71Sopenharmony_ci![fontFeature](figures/searchFontFeature.png)
1140e41f4b71Sopenharmony_ci
1141e41f4b71Sopenharmony_ci### 示例7
1142e41f4b71Sopenharmony_ci
1143e41f4b71Sopenharmony_ci自定义键盘弹出发生避让示例。
1144e41f4b71Sopenharmony_ci
1145e41f4b71Sopenharmony_ci```ts
1146e41f4b71Sopenharmony_ci@Entry
1147e41f4b71Sopenharmony_ci@Component
1148e41f4b71Sopenharmony_cistruct SearchExample {
1149e41f4b71Sopenharmony_ci  controller: SearchController = new SearchController()
1150e41f4b71Sopenharmony_ci  @State inputValue: string = ""
1151e41f4b71Sopenharmony_ci  @State height1: string | number = '80%'
1152e41f4b71Sopenharmony_ci  @State supportAvoidance: boolean = true
1153e41f4b71Sopenharmony_ci
1154e41f4b71Sopenharmony_ci  // 自定义键盘组件
1155e41f4b71Sopenharmony_ci  @Builder
1156e41f4b71Sopenharmony_ci  CustomKeyboardBuilder() {
1157e41f4b71Sopenharmony_ci    Column() {
1158e41f4b71Sopenharmony_ci      Row() {
1159e41f4b71Sopenharmony_ci        Button('x').onClick(() => {
1160e41f4b71Sopenharmony_ci          // 关闭自定义键盘
1161e41f4b71Sopenharmony_ci          this.controller.stopEditing()
1162e41f4b71Sopenharmony_ci        }).margin(10)
1163e41f4b71Sopenharmony_ci      }
1164e41f4b71Sopenharmony_ci
1165e41f4b71Sopenharmony_ci      Grid() {
1166e41f4b71Sopenharmony_ci        ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'], (item: number | string) => {
1167e41f4b71Sopenharmony_ci          GridItem() {
1168e41f4b71Sopenharmony_ci            Button(item + "")
1169e41f4b71Sopenharmony_ci              .width(110).onClick(() => {
1170e41f4b71Sopenharmony_ci              this.inputValue += item
1171e41f4b71Sopenharmony_ci            })
1172e41f4b71Sopenharmony_ci          }
1173e41f4b71Sopenharmony_ci        })
1174e41f4b71Sopenharmony_ci      }.maxCount(3).columnsGap(10).rowsGap(10).padding(5)
1175e41f4b71Sopenharmony_ci    }
1176e41f4b71Sopenharmony_ci    .backgroundColor(Color.Gray)
1177e41f4b71Sopenharmony_ci  }
1178e41f4b71Sopenharmony_ci
1179e41f4b71Sopenharmony_ci  build() {
1180e41f4b71Sopenharmony_ci    Column() {
1181e41f4b71Sopenharmony_ci      Row() {
1182e41f4b71Sopenharmony_ci        Button("20%")
1183e41f4b71Sopenharmony_ci          .fontSize(24)
1184e41f4b71Sopenharmony_ci          .onClick(() => {
1185e41f4b71Sopenharmony_ci            this.height1 = "20%"
1186e41f4b71Sopenharmony_ci          })
1187e41f4b71Sopenharmony_ci        Button("80%")
1188e41f4b71Sopenharmony_ci          .fontSize(24)
1189e41f4b71Sopenharmony_ci          .margin({ left: 20 })
1190e41f4b71Sopenharmony_ci          .onClick(() => {
1191e41f4b71Sopenharmony_ci            this.height1 = "80%"
1192e41f4b71Sopenharmony_ci          })
1193e41f4b71Sopenharmony_ci      }
1194e41f4b71Sopenharmony_ci      .justifyContent(FlexAlign.Center)
1195e41f4b71Sopenharmony_ci      .alignItems(VerticalAlign.Bottom)
1196e41f4b71Sopenharmony_ci      .height(this.height1)
1197e41f4b71Sopenharmony_ci      .width("100%")
1198e41f4b71Sopenharmony_ci      .padding({ bottom: 50 })
1199e41f4b71Sopenharmony_ci
1200e41f4b71Sopenharmony_ci      Search({ controller: this.controller, value: this.inputValue })// 绑定自定义键盘
1201e41f4b71Sopenharmony_ci        .customKeyboard(this.CustomKeyboardBuilder(), { supportAvoidance: this.supportAvoidance })
1202e41f4b71Sopenharmony_ci        .margin(10)
1203e41f4b71Sopenharmony_ci        .border({ width: 1 })
1204e41f4b71Sopenharmony_ci        .onChange((value: string) => {
1205e41f4b71Sopenharmony_ci          this.inputValue = value
1206e41f4b71Sopenharmony_ci        })
1207e41f4b71Sopenharmony_ci    }
1208e41f4b71Sopenharmony_ci  }
1209e41f4b71Sopenharmony_ci}
1210e41f4b71Sopenharmony_ci```
1211e41f4b71Sopenharmony_ci
1212e41f4b71Sopenharmony_ci![CustomSearchKeyType](figures/searchCustomKeyboard.gif)
1213e41f4b71Sopenharmony_ci
1214e41f4b71Sopenharmony_ci### 示例8
1215e41f4b71Sopenharmony_ci
1216e41f4b71Sopenharmony_ci该示例实现了使用minFontSize及maxFontSize设置文本自适应字号。
1217e41f4b71Sopenharmony_ci
1218e41f4b71Sopenharmony_ci```ts
1219e41f4b71Sopenharmony_ci// xxx.ets
1220e41f4b71Sopenharmony_ci@Entry
1221e41f4b71Sopenharmony_ci@Component
1222e41f4b71Sopenharmony_cistruct SearchExample {
1223e41f4b71Sopenharmony_ci  build() {
1224e41f4b71Sopenharmony_ci    Row() {
1225e41f4b71Sopenharmony_ci      Column() {
1226e41f4b71Sopenharmony_ci        Text('adaptive font').fontSize(9).fontColor(0xCCCCCC)
1227e41f4b71Sopenharmony_ci
1228e41f4b71Sopenharmony_ci        Search({value: 'This is the text without the adaptive font'})
1229e41f4b71Sopenharmony_ci          .width('80%').height(90).borderWidth(1)
1230e41f4b71Sopenharmony_ci        Search({value: 'This is the text without the adaptive font'})
1231e41f4b71Sopenharmony_ci          .width('80%').height(90).borderWidth(1)
1232e41f4b71Sopenharmony_ci          .minFontSize(4)
1233e41f4b71Sopenharmony_ci          .maxFontSize(40)
1234e41f4b71Sopenharmony_ci      }.height('90%')
1235e41f4b71Sopenharmony_ci    }
1236e41f4b71Sopenharmony_ci    .width('90%')
1237e41f4b71Sopenharmony_ci    .margin(10)
1238e41f4b71Sopenharmony_ci  }
1239e41f4b71Sopenharmony_ci}
1240e41f4b71Sopenharmony_ci```
1241e41f4b71Sopenharmony_ci
1242e41f4b71Sopenharmony_ci![searchAdaptFont](figures/search_adapt_font.png)
1243e41f4b71Sopenharmony_ci
1244e41f4b71Sopenharmony_ci### 示例9
1245e41f4b71Sopenharmony_ci
1246e41f4b71Sopenharmony_ci该示例展示输入框支持插入和删除回调。
1247e41f4b71Sopenharmony_ci
1248e41f4b71Sopenharmony_ci```ts
1249e41f4b71Sopenharmony_ci// xxx.ets
1250e41f4b71Sopenharmony_ci@Entry
1251e41f4b71Sopenharmony_ci@Component
1252e41f4b71Sopenharmony_cistruct SearchExample {
1253e41f4b71Sopenharmony_ci  @State insertValue: string = ""
1254e41f4b71Sopenharmony_ci  @State deleteValue: string = ""
1255e41f4b71Sopenharmony_ci  @State insertOffset: number = 0
1256e41f4b71Sopenharmony_ci  @State deleteOffset: number = 0
1257e41f4b71Sopenharmony_ci  @State deleteDirection: number = 0
1258e41f4b71Sopenharmony_ci
1259e41f4b71Sopenharmony_ci  build() {
1260e41f4b71Sopenharmony_ci    Row() {
1261e41f4b71Sopenharmony_ci      Column() {
1262e41f4b71Sopenharmony_ci        Search({ value: "Search支持插入回调文本" })
1263e41f4b71Sopenharmony_ci          .height(60)
1264e41f4b71Sopenharmony_ci          .onWillInsert((info: InsertValue) => {
1265e41f4b71Sopenharmony_ci            this.insertValue = info.insertValue
1266e41f4b71Sopenharmony_ci            return true;
1267e41f4b71Sopenharmony_ci          })
1268e41f4b71Sopenharmony_ci          .onDidInsert((info: InsertValue) => {
1269e41f4b71Sopenharmony_ci            this.insertOffset = info.insertOffset
1270e41f4b71Sopenharmony_ci          })
1271e41f4b71Sopenharmony_ci
1272e41f4b71Sopenharmony_ci        Text("insertValue:" + this.insertValue + "  insertOffset:" + this.insertOffset).height(30)
1273e41f4b71Sopenharmony_ci
1274e41f4b71Sopenharmony_ci        Search({ value: "Search支持删除回调文本b" })
1275e41f4b71Sopenharmony_ci          .height(60)
1276e41f4b71Sopenharmony_ci          .onWillDelete((info: DeleteValue) => {
1277e41f4b71Sopenharmony_ci            this.deleteValue = info.deleteValue
1278e41f4b71Sopenharmony_ci            info.direction
1279e41f4b71Sopenharmony_ci            return true;
1280e41f4b71Sopenharmony_ci          })
1281e41f4b71Sopenharmony_ci          .onDidDelete((info: DeleteValue) => {
1282e41f4b71Sopenharmony_ci            this.deleteOffset = info.deleteOffset
1283e41f4b71Sopenharmony_ci            this.deleteDirection = info.direction
1284e41f4b71Sopenharmony_ci          })
1285e41f4b71Sopenharmony_ci
1286e41f4b71Sopenharmony_ci        Text("deleteValue:" + this.deleteValue + "  deleteOffset:" + this.deleteOffset).height(30)
1287e41f4b71Sopenharmony_ci        Text("deleteDirection:" + (this.deleteDirection == 0 ? "BACKWARD" : "FORWARD")).height(30)
1288e41f4b71Sopenharmony_ci
1289e41f4b71Sopenharmony_ci      }.width('100%')
1290e41f4b71Sopenharmony_ci    }
1291e41f4b71Sopenharmony_ci    .height('100%')
1292e41f4b71Sopenharmony_ci  }
1293e41f4b71Sopenharmony_ci}
1294e41f4b71Sopenharmony_ci```
1295e41f4b71Sopenharmony_ci
1296e41f4b71Sopenharmony_ci![SearchInsertAndDelete](figures/SearchInsertAndDelete.PNG)
1297e41f4b71Sopenharmony_ci
1298e41f4b71Sopenharmony_ci### 示例10
1299e41f4b71Sopenharmony_ci
1300e41f4b71Sopenharmony_cieditMenuOptions使用示例,展示设置自定义菜单扩展项的文本内容、图标、回调方法。
1301e41f4b71Sopenharmony_ci
1302e41f4b71Sopenharmony_ci```ts
1303e41f4b71Sopenharmony_ci// xxx.ets
1304e41f4b71Sopenharmony_ci@Entry
1305e41f4b71Sopenharmony_ci@Component
1306e41f4b71Sopenharmony_cistruct Index {
1307e41f4b71Sopenharmony_ci  @State text: string = 'Search editMenuOptions'
1308e41f4b71Sopenharmony_ci
1309e41f4b71Sopenharmony_ci  onCreateMenu(menuItems: Array<TextMenuItem>) {
1310e41f4b71Sopenharmony_ci    menuItems.forEach((value, index) => {
1311e41f4b71Sopenharmony_ci      value.icon = $r('app.media.startIcon')
1312e41f4b71Sopenharmony_ci      if (value.id.equals(TextMenuItemId.COPY)) {
1313e41f4b71Sopenharmony_ci        value.content = "复制change"
1314e41f4b71Sopenharmony_ci      }
1315e41f4b71Sopenharmony_ci      if (value.id.equals(TextMenuItemId.SELECT_ALL)) {
1316e41f4b71Sopenharmony_ci        value.content = "全选change"
1317e41f4b71Sopenharmony_ci      }
1318e41f4b71Sopenharmony_ci    })
1319e41f4b71Sopenharmony_ci    let item1: TextMenuItem = {
1320e41f4b71Sopenharmony_ci      content: 'custom1',
1321e41f4b71Sopenharmony_ci      icon: $r('app.media.startIcon'),
1322e41f4b71Sopenharmony_ci      id: TextMenuItemId.of('custom1'),
1323e41f4b71Sopenharmony_ci    }
1324e41f4b71Sopenharmony_ci    let item2: TextMenuItem = {
1325e41f4b71Sopenharmony_ci      content: 'custom2',
1326e41f4b71Sopenharmony_ci      id: TextMenuItemId.of('custom2'),
1327e41f4b71Sopenharmony_ci      icon: $r('app.media.startIcon'),
1328e41f4b71Sopenharmony_ci    }
1329e41f4b71Sopenharmony_ci    menuItems.push(item1)
1330e41f4b71Sopenharmony_ci    menuItems.unshift(item2)
1331e41f4b71Sopenharmony_ci    return menuItems
1332e41f4b71Sopenharmony_ci  }
1333e41f4b71Sopenharmony_ci
1334e41f4b71Sopenharmony_ci  build() {
1335e41f4b71Sopenharmony_ci    Column() {
1336e41f4b71Sopenharmony_ci      Search({ value: this.text })
1337e41f4b71Sopenharmony_ci        .width('95%')
1338e41f4b71Sopenharmony_ci        .editMenuOptions({
1339e41f4b71Sopenharmony_ci          onCreateMenu: this.onCreateMenu, onMenuItemClick: (menuItem: TextMenuItem, textRange: TextRange) => {
1340e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.of("custom2"))) {
1341e41f4b71Sopenharmony_ci              console.log("拦截 id: custom2 start:" + textRange.start + "; end:" + textRange.end)
1342e41f4b71Sopenharmony_ci              return true;
1343e41f4b71Sopenharmony_ci            }
1344e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.COPY)) {
1345e41f4b71Sopenharmony_ci              console.log("拦截 COPY start:" + textRange.start + "; end:" + textRange.end)
1346e41f4b71Sopenharmony_ci              return true;
1347e41f4b71Sopenharmony_ci            }
1348e41f4b71Sopenharmony_ci            if (menuItem.id.equals(TextMenuItemId.SELECT_ALL)) {
1349e41f4b71Sopenharmony_ci              console.log("不拦截 SELECT_ALL start:" + textRange.start + "; end:" + textRange.end)
1350e41f4b71Sopenharmony_ci              return false;
1351e41f4b71Sopenharmony_ci            }
1352e41f4b71Sopenharmony_ci            return false;
1353e41f4b71Sopenharmony_ci          }
1354e41f4b71Sopenharmony_ci        })
1355e41f4b71Sopenharmony_ci        .margin({ top: 100 })
1356e41f4b71Sopenharmony_ci    }
1357e41f4b71Sopenharmony_ci    .width("90%")
1358e41f4b71Sopenharmony_ci    .margin("5%")
1359e41f4b71Sopenharmony_ci  }
1360e41f4b71Sopenharmony_ci}
1361e41f4b71Sopenharmony_ci```
1362e41f4b71Sopenharmony_ci
1363e41f4b71Sopenharmony_ci![searchEditMenuOptions](figures/searchEditMenuOptions.gif)
1364e41f4b71Sopenharmony_ci
1365e41f4b71Sopenharmony_ci### 示例11
1366e41f4b71Sopenharmony_ci
1367e41f4b71Sopenharmony_cisearchIcon和cancelButton使用SymbolGlyphModifier设置图标样式示例。
1368e41f4b71Sopenharmony_ci
1369e41f4b71Sopenharmony_ci```ts
1370e41f4b71Sopenharmony_ci// xxx.ets
1371e41f4b71Sopenharmony_ciimport { SymbolGlyphModifier } from '@kit.ArkUI'
1372e41f4b71Sopenharmony_ci
1373e41f4b71Sopenharmony_ci@Entry
1374e41f4b71Sopenharmony_ci@Component
1375e41f4b71Sopenharmony_cistruct SearchExample {
1376e41f4b71Sopenharmony_ci  controller: SearchController = new SearchController()
1377e41f4b71Sopenharmony_ci  @State changeValue: string = ''
1378e41f4b71Sopenharmony_ci  @State submitValue: string = ''
1379e41f4b71Sopenharmony_ci
1380e41f4b71Sopenharmony_ci  build() {
1381e41f4b71Sopenharmony_ci    Column() {
1382e41f4b71Sopenharmony_ci      Search({ value: this.changeValue, placeholder: 'Type to search...', controller: this.controller })
1383e41f4b71Sopenharmony_ci        .searchIcon(new SymbolGlyphModifier($r('sys.symbol.magnifyingglass')).fontColor([Color.Red]))
1384e41f4b71Sopenharmony_ci        .cancelButton({
1385e41f4b71Sopenharmony_ci          style: CancelButtonStyle.CONSTANT,
1386e41f4b71Sopenharmony_ci          icon: new SymbolGlyphModifier($r('sys.symbol.xmark')).fontColor([Color.Green])
1387e41f4b71Sopenharmony_ci        })
1388e41f4b71Sopenharmony_ci        .searchButton('SEARCH')
1389e41f4b71Sopenharmony_ci        .width('95%')
1390e41f4b71Sopenharmony_ci        .height(40)
1391e41f4b71Sopenharmony_ci        .backgroundColor('#F5F5F5')
1392e41f4b71Sopenharmony_ci        .placeholderColor(Color.Grey)
1393e41f4b71Sopenharmony_ci        .placeholderFont({ size: 14, weight: 400 })
1394e41f4b71Sopenharmony_ci        .textFont({ size: 14, weight: 400 })
1395e41f4b71Sopenharmony_ci        .margin(10)
1396e41f4b71Sopenharmony_ci    }
1397e41f4b71Sopenharmony_ci    .width('100%')
1398e41f4b71Sopenharmony_ci    .height('100%')
1399e41f4b71Sopenharmony_ci  }
1400e41f4b71Sopenharmony_ci}
1401e41f4b71Sopenharmony_ci```
1402e41f4b71Sopenharmony_ci
1403e41f4b71Sopenharmony_ci![searchSymbolGlyphModifierIcon](figures/searchSymbolGlyphModifierIcon.png)
1404e41f4b71Sopenharmony_ci
1405