如何在使用离子2/3的iOS应用程序中触摸文本字段外部时禁用键盘隐藏

时间:2018-02-05 11:22:59

标签: ionic2 ionic3

我想在使用离子构建的iOS应用程序中触摸文本字段外时禁用键盘隐藏。我想只使用键盘返回按钮隐藏键盘。有没有办法在触摸文本字段外时禁用键盘隐藏?

2 个答案:

答案 0 :(得分:1)

确保你有

<preference name="KeyboardDisplayRequiresUserAction" value="false"/>
如果要在iOS上调用focus(),请在config.xml中

然后创建指令:

import { Directive, ElementRef, Renderer } from '@angular/core';

@Directive({
  selector: '[autofocuser]' 
})
export class Autofocuser {

    constructor(private element: ElementRef, private renderer: Renderer) {}

    ngAfterViewInit() {
        let el = this.element.nativeElement.children[0]
        el.addEventListener('blur', (event) => {
            this.stopBubble(event);
            this.renderer.invokeElementMethod(el, 'focus', []);
        });
    }

    stopBubble(event) {
        event.preventDefault(); 
        event.stopPropagation(); //Stops event bubbling
    }

}

使用指令标记输入字段。

请参阅https://github.com/ionic-team/ionic-plugin-keyboard/issues/81

答案 1 :(得分:1)

检查此Doc

安装以下插件

 ionic cordova plugin add ionic-plugin-keyboard

 npm install --save @ionic-native/keyboard
在你的html页面内。

<ion-input type="text" (blur)="closeKeyboard()"></ion-input>

在你的ts文件中

import { Keyboard } from '@ionic-native/keyboard';

constructor(private keyboard: Keyboard) { }

closeKeyboard(){
  this.keyboard.close();
  (or)
  this.keyboard.open();
}

当您触摸键盘外时它会关闭键盘

在输入中使用此更新尝试

(mousedown)="something(); $event.preventDefault()"