HarmonyOS 怎么调用起系统键盘?

目前键盘都是通过点击TextInput实现,有没有单独的一个API不借助TextInput直接调起键盘。

阅读 620
1 个回答

可以通过focusControl.requestFocus控制输入框获焦,组件获焦后会自动弹起软键盘失焦同理,文档参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkui-100-V5

@Entry
@Component
struct Index {
  controller: TextInputController = new TextInputController()
  @State inputValue: string = ""
  @State InputBGColor: string = '#90EE90'

  aboutToAppear(): void {

    setTimeout(() => {
      focusControl.requestFocus('Text_ID')
    }, 1000)

  }

  build() {
    Column({ space: 10 }) {
      TextInput({
        controller: this.controller,
        text: this.inputValue
      })
        .id('Text_ID')
        .backgroundColor(this.InputBGColor)
        .margin(10)
        .border({ width: 1 })
        .height('48vp')
        .onChange((val) => {
          this.inputValue = val
        })
        .onFocus(() => {
          this.InputBGColor = '#FF0000'
        })
        .onBlur(() => {
          this.InputBGColor = '#90EE90'
        })

      Button('组件失焦')
        .onClick(() => {
          setTimeout(() => {
            focusControl.requestFocus('333')
          }, 0)
        }).id('333')

      Button('组件获焦/切换')
        .onClick(() => {
          setTimeout(() => {
            focusControl.requestFocus('Text_ID')
          }, 200)
          focusControl.requestFocus('333')

        })
    }
  }
}

另外给textinput组件设置.defaultFocus(true)获取默认焦点,首次进入弹出,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-focus-V5\#defaultfocus9

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进