Я новичок в разработке iOS и читаю быстрый учебник от Apple. Мне кажется, что приведенный ниже код всегда необходим, так что, когда пользователь обращается к возврату в текстовом поле, он уходит в отставку с первого ответчика.
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Я понимаю, что быстрый дает гибкость для программистов, чтобы контролировать это поведение, но в каких сценариях реального приложения мне не нужны эти две строки? Мне кажется, что я всегда нуждаюсь в них, так почему бы быстро не сделать это автоматически?
Было бы очень неправильно, если бы Cocoa предположил, что нажатие Return должно автоматически отклонить клавиатуру. Это справедливо оставлено вам. Вероятно, пользователь ожидает, что это отклонит клавиатуру. И вы тоже, вероятно, предпочли бы, чтобы клавиатура не висела навсегда. Ну, resignFirstResponder
отклоняет клавиатуру. Тем не менее, предположим, что что-то не так с текстом. Когда пользователь отбрасывает Return, вы можете проверить текст и не отклонять клавиатуру. Вместо этого вы можете поставить предупреждение, предупреждая о наличии проблемы. Вы не хотели бы быть переопределены каким-то автоматическим поведением рамки!
Кстати, есть и другие способы вызвать постукивание. Возврат, чтобы отклонить клавиатуру, отличную от реализации этого метода. В приложениях, которые используют эти другие способы, этот метод может вообще не отображаться.
Это значение по умолчанию.
Однако, если вы предпочитаете "автоматическое возвращение возврата", вы можете теперь в Swift 2.0.
Вы все равно должны сделать свой класс совместимым с UITextFieldDelegate, и вам все равно нужно настроить делегат в Interface Builder.
Сделайте расширение протокола:
extension UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
NSLog("default behavior")
textField.resignFirstResponder()
return true
}
}
Нет, что поведение по умолчанию для всего вашего приложения...
Вы все же можете переопределить метод в классе.