HarmonyOS TextInput自动获取焦点问题?

页面上上下排列了一个TextInput和一个按钮,点击 按钮会使用CustomDialogController弹窗,关闭弹窗后,TextInput自动获取焦点····,怎么不让他自动获取焦点,设置了.defaultFocus(false).groupDefaultFocus(false)都没用

阅读 593
1 个回答

可使用requestFocus 方式,下面是相关demo:

import prompt from '@ohos.prompt';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State isboole: boolean = true;

  build() {
    Row() {
      Column() {
        Text(this.message)
          .id('1sa')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button('我会获取焦点')
          .key('BBB')
        TextInput({ placeholder: 'AAAAA' })
          .id('AAAA1')
          .type(InputType.Normal)
        Button('点击焦点转移')
          .onClick(() => {
            let res = focusControl.requestFocus('BBB')
            if (res) {
              prompt.showToast({ message: 'Request success' })
            } else {
              prompt.showToast({ message: 'Request failed' })
            }
          })
        Button('点击获取焦点')
          .onClick(() => {
            this.isboole = true
            sendEventByKey("AAAA1", 10, "") // 向id为"longClick"的组件发送点击事件
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进