Неправильная работа клавиатуры
У меня такая проблема: по нажатию на "ключ ввода" клавиатура исчезает из первого поля, а во втором не появляется. Когда я вручную перехожу во второе поле и ввожу текст, у меня не получается убрать клавиатуру. Мне нужно, чтобы по нажатию на "ключ ввода" курсор перемещался из первого поля во второй, а затем, после заполнения второго поля, убиралась клавиатура. Мой код:
extension RegistrationViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if nameTextField.text!.count > 3, passwordTextField.text!.count > 5 {
nameTextField.enablesReturnKeyAutomatically = true
nameTextField.resignFirstResponder()
passwordTextField.enablesReturnKeyAutomatically = true
passwordTextField.resignFirstResponder()
}
else if nameTextField.text!.count > 3 {
nameTextField.enablesReturnKeyAutomatically = true
nameTextField.resignFirstResponder()
passwordTextField = textField
passwordTextField.resignFirstResponder()
}
else if passwordTextField.text!.count > 5 {
passwordTextField.enablesReturnKeyAutomatically = true
passwordTextField.resignFirstResponder()
}
else {
preconditionFailure("Недостаточно символов")
}
return (nameTextField.text!.count > 3 && passwordTextField.text!.count > 5)
}
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Для обработки нажатий можно например вызывать такой метод:
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
self.switchBasedNextTextField(textField)
return true
}
который в свою очередь будет вызывать метод перехода:
private func switchBasedNextTextField(_ textField: UITextField) {
switch textField {
case self.username:
self.firstname.becomeFirstResponder()
case self.firstname:
self.lastname.becomeFirstResponder()
case self.lastname:
self.email.becomeFirstResponder()
default:
self.email.resignFirstResponder()
}
}
текстовые поля для примера привел. Вы насколько я понял вызываете убирание курсора resignFirstResponder но ничего не привязываете. Вот результат работы кода:
