Клавиатура поля пароля переключается с azerty на qwerty (иногда) только на iOS 12 - PullRequest
0 голосов
/ 26 октября 2018

Я кодирую приложение iOS на Swift 4, я француз, поэтому я работаю с мобильным телефоном на французском языке / во французском регионе.

На устройстве iOS 12 поле моего пароля при входе в системустраница работает отлично (автоматический вход с сохраненным паролем даже работает, и я ничего не делал, чтобы это работало), но на моей странице регистрации поле переключает клавиатуру с AZERTY на QWERTY.

В настройках моего телефона есть только клавиатура AZERTY, и это происходит со всеми устройствами iOS 12, а не только с моим ...

Единственное, что я делаю в коде: (мой файл UIView называется RegisterView.swift)

fieldPwd = UITextField()
fieldPwdConfirm = UITextField()
fieldPwd.isSecureTextEntry = true
fieldPwdConfirm.isSecureTextEntry = true

Есть ли какое-либо решение этой проблемы?Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2019

Я нашел решение для своего проекта, может быть, оно кому-нибудь поможет.

Я заметил, что:

  • на моей странице входа (с 1 безопасным UITextField) клавиатура была AZERTY
  • на моей странице входа (с двумя безопасными UITextField) клавиатуры были QWERTY
  • на странице моего аккаунта (с 2 безопасными UITextField), клавиатуры были AZERTY

После некоторого сравнения страниц входа и учетной записи я понял, что на странице моей учетной записи текстовое поле перед защищенным текстовым полем представляло собой .numberPad текстовое поле.

Итак, в моем xib-файле для входа я установил для своих защищенных текстовых полей значение .numberPad и для них значение .default в textFieldDidBeginEditing. И снова к .numberPad снова в textFieldDidEndEditing, потому что если нет, то в QWERTY во второй раз появились клавиатуры. Теперь мои защищенные текстовые поля в AZERTY.

func textFieldDidBeginEditing(_ textField: UITextField) {
    if ( textField == pwdTextField || textField == pwd2TextField ) {
        textField.keyboardType = .default;
    }
    // do other stuffs
}

func textFieldDidEndEditing(_ textField: UITextField) {
    if ( textField == pwdTextField || textField == pwd2TextField ) {
        textField.keyboardType = .numberPad;
    }
    // do other stuffs
}

@. @

...