TextInput在聚焦时如何让光标回到起点?

问题描述

TextInput组件在聚焦时,光标位置会自动根据触摸点位置变化,如何使得聚焦时光标固定显示在起点位置?

阅读 470
1 个回答

解决措施

  1. TextInput组件绑定onEditChange事件,该事件TextInput可进行输入时触发。
  2. 在事件回调用TextInputController.caretPosition方法设置光标位置,需要用到setTimeout()延迟方法。

示例代码

// xxx.ets 
@Entry 
@Component 
struct Index { 
  controller: TextInputController = new TextInputController(); 
 
  build() { 
    Column() { 
      TextInput({ controller: this.controller }) 
        .onEditChange((isEditing: boolean) => { 
          if (isEditing) { 
            setTimeout(() => { 
              this.controller.caretPosition(0); 
            }, 100); 
          } 
        }) 
    } 
  } 
}

参考链接

TextInput

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