TextInput如何取消自动获得焦点

页面中自定义组件中使用了TextInput,每次进入页面会自动弹出键盘 必须使用this.textController.stopEditing()才能关闭键盘,请问如何取消TextInput自动获得焦点功能?

HarmonyOS
2024-08-10 13:23:31
816浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

TextInput是默认绑定软键盘,即进入TextInput页面会自动弹起软键盘。可以通过设置 .enableKeyboardOnFocus(false)使第一次进入页面的时候,不弹出软键盘。

页面中需要有承接焦点的组件,如果没有其他组件,组件中的TextInput就会聚焦;可以将焦点转移实现取消TextInput获取焦点的效果;

示例代码

因为根据是否存在默认交互逻辑,可将组件分为可获焦和不可获焦组件,所以将焦点转移的时候有两种方案:

1、存在默认交互逻辑的组件(默认可获焦):Button、TextInput等,只需通过将defaultFocus属性设置为true即可获取焦点:

@Entry 
@Component 
struct Index { 
  controller: TextInputController = new TextInputController() 
 
  build() { 
    Row() { 
      TextInput({ 
        placeholder: ‘wait input…’, 
        text: ‘’, 
        controller: this.controller 
      }) 
      Button(‘placeholder’) 
      .defaultFocus(true) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

2、不存在默认交互逻辑的组件(默认不可获焦):Text、Image等,通过将focusable设置为true将此类组件转换为可获焦状态后再获取焦点

@Entry 
@Component 
struct Index { 
  controller: TextInputController = new TextInputController() 
 
  build() { 
    Row() { 
      TextInput({ 
        placeholder: ‘wait input…’, 
        text: ‘’, 
        controller: this.controller 
      }) 
      Text(‘placeholder’) 
      .focusable(true) 
        .defaultFocus(true) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
分享
微博
QQ
微信
回复
2024-08-10 17:30:10


相关问题
如何监听TextInput是否获得焦点
2580浏览 • 1回复 待解决
HarmonyOS 如何TextInput获得输入焦点
850浏览 • 1回复 待解决
HarmonyOS TextInput无法取消焦点
951浏览 • 1回复 待解决
HarmonyOS TextInput 取消默认焦点
1109浏览 • 1回复 待解决
HarmonyOS 如何取消TextInput自动聚焦
1252浏览 • 1回复 待解决
HarmonyOS TextInput自动获取焦点问题
810浏览 • 1回复 待解决
HarmonyOS TextInput组件无法自动获取焦点
1026浏览 • 1回复 待解决
TextInput如何取消默认聚焦效果
3348浏览 • 1回复 待解决
HarmonyOS TextInput焦点问题
1113浏览 • 1回复 待解决
ets的text input手动控制获得和失去焦点
5471浏览 • 1回复 待解决
TextInput组件获取焦点的几种场景
3979浏览 • 1回复 待解决
取消点击textinput时的背景高亮样式
1214浏览 • 1回复 待解决
提问
该提问已有2人参与 ,帮助了64人