键盘判断事件
当组件获得焦点时,获焦组件触发该事件。系统会根据该事件回调函数返回值,判断是否需要键盘。
说明:
本模块首批接口从API version 24开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
onNeedSoftkeyboard
onNeedSoftkeyboard(onNeedSoftkeyboardCallback: OnNeedSoftkeyboardCallback|undefined): T
设置组件判断是否需要键盘时触发的回调。主要用于键盘接续场景,当焦点从输入框切换到其他组件时,如果切换后的组件回调函数OnNeedSoftkeyboardCallback的返回值设置为true,则表示该组件需要键盘,此时键盘将不会收起,如果返回值设置为false,则表示该组件不需要键盘,此时键盘将收起。
对于不能获焦的组件,本接口不生效。
输入框组件使用该接口并将返回值设置为false时,点击输入框将不会拉起键盘。
Web组件使用该方法时,如果返回值为true,Web组件会判断组件中是否有可编辑节点,如果有可编辑节点才会保留键盘,如果返回值为false,无论是否有可编辑节点,键盘都不会保留。
XComponent组件使用该方法时,如果返回值为true且XComponent组件使用OH_NativeXComponent_SetNeedSoftKeyboard设置了需要键盘,才会保留键盘,如果返回值为false,无论组件如何设置,键盘都不会保留。
当接口返回true时,应用的自绘制输入框需要主动attach,建立输入法框架和输入法应用的通信,否则点击键盘会失去响应(失焦时输入法框架和输入法应用的通信会断开)。
该接口只适用于对输入法应用接续的场景,对自定义键盘不生效。自定义键盘接续详见setCustomKeyboardContinueFeature。
原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| onNeedSoftkeyboardCallback | OnNeedSoftkeyboardCallback |undefined | 是 | 事件触发时执行的回调,系统会根据回调的返回值决定是否需要键盘。 设置为undefined时,不会触发回调,输入框类组件行为等同返回true。其他组件行为等同返回false。 |
返回值:
| 类型 | 说明 |
|---|---|
| T | 返回当前组件。 |
OnNeedSoftkeyboardCallback
type OnNeedSoftkeyboardCallback = () => boolean
当绑定该方法的组件判断是否需要键盘时,将触发此回调。
原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 是否需要键盘。 若此回调的返回值为true,则表明该组件需要键盘;返回值为false,则表明该组件不需要键盘。 |
示例
示例1(设置键盘接续)
该示例通过onNeedSoftkeyboard接口,设置按钮需要键盘。在从输入框拉起键盘后,点击按钮使焦点切换到按钮,此时键盘将不会收起,再次点击输入框可继续输入。
从API version 24开始,新增onNeedSoftkeyboard接口。
@Entry
@Component
struct Index {
build() {
Column() {
Button('切换焦点到Button')
.onClick(() => {
this.getUIContext().getFocusController().requestFocus('Button')
})
.key('Button')
.fontSize(20)
.width('80%')
.margin('10')
.onNeedSoftkeyboard((): boolean => {
return true;
})
TextInput()
.key('TextInput1')
}
.height('100%')
.width('100%')
}
}

你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 ts-drawing-components-shape
openharmony 鸿蒙 ts-universal-attributes-sharp-clipping
openharmony 鸿蒙 ts-universal-attributes-toolbar
openharmony 鸿蒙 ts-container-lazyvgridlayout
openharmony 鸿蒙 ohos-arkui-advanced-FoldSplitContainer
openharmony 鸿蒙 ts-methods-calendarpicker-dialog
openharmony 鸿蒙 ts-uicommonevent
openharmony 鸿蒙 ts-basic-gestures-tapgesture