2016-10-20 2 views
0

Использование образцов-бакалейные-угловые Я пытаюсь сосредоточиться пароль вместо электронной почты, нажав кнопкуTextField фокус() не работает

┌──────────────────┬─────────────────┬────────────────┬───────────────┐ 
│ Component  │ Current version │ Latest version │ Information │ 
│ nativescript  │ 2.3.0   │ 2.3.0   │ Up to date │ 
│ tns-core-modules │ 2.3.0   │ 2.3.0   │ Up to date │ 
│ tns-android  │ 2.3.0   │ 2.3.0   │ Up to date │ 
│ tns-ios   │     │ 2.3.0   │ Not installed │ 
└──────────────────┴─────────────────┴────────────────┴───────────────┘ 

XML:

<TextField #email hint="Email Address" keyboardType="email" [(ngModel)]="user.email" 
autocorrect="false" autocapitalizationType="none"></TextField> 
<TextField #password hint="Password" secure="true" [(ngModel)]="user.password"></TextField> 
<Button text="Focus Password" (tap)="focusDat()"></Button> 

машинопись:

@ViewChild("password") password: ElementRef; 
focusDat() { 
    let password = <TextField>this.name.nativeElement; 
    console.log(password.focus()); 
} 

мощность:

JS: false 
+0

focus() возвращает только если элемент или один из детей имеет фокус, он не будет устанавливать фокус на текстовое поле и выводит клавиатуру, но вы можете пойти для собственного api, чтобы установить только текстовое поле, вам нужно будет делать ios и андроидный путь отдельно –

+0

Ну апи говорит, что он пытается сфокусировать взгляд http://docs.nativescript.org/api-reference/classes/_ui_text_field_.textfield.html#focus есть простой способ сделать то же самое? :/ – AboAlwi

+0

Да, он пытается сфокусироваться, но не установить его, если есть программная клавиатура, видимая и простая? не уверен, потому что вам нужно сделать это на платформе ios/android отдельно –

ответ

0

Благодаря Николаю Цоневым я просто сфокусировал неправильно поле было:

let password = <TextField>this.name.nativeElement; 

должно быть:

let password = <TextField>this.password.nativeElement; 

это работает прекрасно, только что сделал глупую ошибку ...

Смежные вопросы