NativeElomentのsetFocusメソッドを使用してフォーカスを設定することができます。
しかし、フォーカスを削除するのはどうですか?
Angular 2 +/Ionic 3アプリで、テンプレートからカーソルを削除し、入力の選択を解除するにはどうすればよいですか?
入力にフォーカスがある間、モバイルキーボードは開いたままなので、フォーカスを削除する必要があります。
編集:入力はIonic2 +のイオン入力です。
1)コンポーネントのテンプレートの入力にテンプレート変数参照を追加します。
_<ion-input #textInput>
_
2)コンポーネントのインポートにElementRef
とViewChild
を追加します。
_import { ElementRef, ViewChild } from '@angular/core'
_
3)_@ViewChild
_変数と関連するメソッドをコンポーネントに追加します。
_export class AppComponent {
@ViewChild('textInput') textInput;
setFocus() {
this.textInput.nativeElement.focus();
}
removeFocus() {
this.textInput.nativeElement.blur();
}
}
_
setFocus()
またはremoveFocus()
はさまざまな方法でトリガーできます。次に例を示します。
_# app.component.html
<ion-input #textInput>
# app.component.ts
import { HostListener } from '@angular/core';
export class AppComponent {
[previous code elided for readability]
isInputActive: boolean;
@HostListener('document:click', ['$event'])
handleClickEvent(event: MouseEvent): void {
if (document.activeElement !== this.textInput.nativeElement) {
this.textInput.nativeElement.blur();
}
}
}
_
Ionic 4ユーザーの場合;)
検索入力のキーボードを閉じる/非表示にする複数のソリューションを試した後、私はあなたのソリューション@ zach-newburghからインスピレーションを得た方法を見つけました。
動作していませんでした:
this.keyboard.hide()
#searchInput (keyup.enter)="searchInput.blur()"
this.searchInput.nativeElement.blur();
this.searchInput.getElementRef().nativeElement.blur();
有効なソリューションのみ
this.searchInput._native.nativeElement.blur();
ts
import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { TextInput } from 'ionic-angular';
...
@ViewChild('searchInput') searchInput: TextInput;
...
onSearchEnter() {
this.searchInput._native.nativeElement.blur();
}
html
<ion-input #searchInput
type="search"
(keyup.enter)="onSearchEnter()"
[(ngModel)]="searchQuery"></ion-input>
html
<ion-input #searchInput
type="search"
(keyup.enter)="searchInput._native.nativeElement.blur()"
[(ngModel)]="searchQuery"></ion-input>
それが役立つことを願っています。