首页 文章

当视图加载不起作用时,离子ion-textarea setFocus

提问于
浏览
1

我有一个离子3离子 - textarea:

<ion-content padding class="note-detail">
  <ion-item>
    <ion-textarea #myInput [(ngModel)]="note.content"
                   (ngModelChange)="textValueChanged()" placeholder="" rows="6"></ion-textarea>
  </ion-item>
</ion-content>

我想在加载此视图时自动聚焦此文本区域 .

如果我直接setFocus,它会立即失去焦点(键盘显示和隐藏):

ionViewDidLoad() {
      this.myInput.setFocus();
  }

如果我设置超时,则不会发生任何事情,textarea根本没有关注:

ionViewDidLoad() {
    setTimeout(()=>{
      console.log("set timeout fired!");
      this.myInput.setFocus();
    },1000);
  }

为什么?

3 回答

  • 0

    如果你强行打开键盘怎么办?

    import { Keyboard } from 'ionic-native';
    
    ionViewDidLoad() {
    
     setTimeout(() => {
       Keyboard.show(); 
       this.myInput.setFocus();
     }, 1000);
    
    }
    

    参考:Ionic Docs

  • 0

    您可以使用自动对焦属性:

    <ion-textarea autofocus ... ></ion-textarea>
    

    问候

  • 0

    我遇到了同样的问题,我刚刚修好了 . 由于 ionic-plugin-keyboard 已弃用, native-keyboard 不为我工作 . )

    native-keyboard API doucument:https://ionicframework.com/docs/native/keyboard/

    不予批准:https://github.com/ionic-team/ionic-plugin-keyboard

    我也在_2996838中尝试了 Keyboard 但它也不适用于我 .

    ================================================== =============

    无论如何这里是我如何修复它:

    安装新的 cordova-plugin-ionic-keyboardhttps://github.com/ionic-team/cordova-plugin-ionic-keyboard

    In component:

    ...
    declare var Keyboard: any;
    ...
    export class MapSearchbarModal {
        @ViewChild("searchbar") searchbar: Searchbar;
    ...
        ionViewDidLoad() {
          setTimeout(() => {
            this.searchbar.setFocus();
            Keyboard.show();
          }, 100);
        }
    ...
    }
    

    In HTML:

    <ion-searchbar #searchbar
    ...
    </ion-searchbar>
    

相关问题