В моем подклассе UIViewController
я создал UIAlertController
с UITextField
:
class MyViewController: UIViewController {
...
let alertController = UIAlertController(title: "a title", message: "", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK!", style: .default) { alert in
print("OK!!")
}
alertController.addTextField { (textField) in
textField.placeholder = "a placeholder"
textField.delegate = self
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
...
}
extension MyViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
return true
}
}
Теперь, когда отображается предупреждение, и я нажимаю кнопку «Далее / Готово» клавиатуры, клавиатуру и предупреждениеотклоняются, и OK! печатается.
В моем методе textFieldShouldReturn
нет ни textField.resignFirstResponder()
, ни команды оповещения об отклонении, так как же возможно, что клавиатура и оповещение отклоняются?Как Apple добивается такого поведения?Имеет textField
двух делегатов?