Swift проверить пароль 2 uitextfield во время ввода текста - PullRequest
0 голосов
/ 03 августа 2020

У меня есть 2 текстовых поля, которые содержат 1 входной контакт и 1 контакт повторного типа, я пытаюсь проверить с помощью shouldChangeCharactersIn, поэтому, если контакт не тот же, он автоматически покажет небольшое текстовое сообщение, в котором говорится, что контакт не тот. ну, это работает, но не совсем, потому что, если я просто наберу 6-контактный контакт на моем входном контакте, и я также введу 6-контактный контакт в повторном вводе контакта (в этом случае я намерен ввести неправильный контакт), и сообщение не появится, но если я наберу более 6 раз, скажем, в 7-м номере появится сообщение, почему я не понимаю.

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    

    if textConfirmPIN.text!.count == 6 && textPIN.text!.count == 6 {
        if textConfirmPIN.text != textPIN.text{
            self.showError(message: "PIN is not the same")
        }
    }

    return true
}

извините за мой плохой английский sh, но может ли кто-нибудь сказать я что происходит? спасибо, ребята

1 Ответ

0 голосов
/ 03 августа 2020

Использовать измененное событие редактирования текстового поля, а не shouldChangeCharactersIn, потому что, когда вы проверяете textConfirmPIN.text!.count в shouldChangeCharactersIn, последний набранный символ еще не присутствует до тех пор, пока не вернется true

, поэтому он вызвал, когда вы набрали 7-й символ

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...