Клавиатура не увольняется
Я понимаю, что это тривиальный вопрос с тоннами ответа на SO. Мне может просто понадобиться пара свежих глаз, так как я все трижды проверил и не могу понять, где я ошибаюсь. Я просто хочу отклонить клавиатуру при нажатии клавиши возврата. Я правильно настраиваю делегата и внедряю правильные методы, так почему же клавиатура не отклоняется?
Имеет ли collectionView
в viewController
усложнять вещи? (текстовое поле НЕ внутри collectionView
)
class SearchController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UITextFieldDelegate {
@IBOutlet weak var searchBar: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
searchBar.delegate = self
setupUI()
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
searchBar.resignFirstResponder()
return true
}
Вещи, которые я пробовал:
- очистка проекта
- перезапуск xcode
- изменяя
searchBar.resignFirstResponder()
вtextField.resignFirstResponder()
- установка делегата для текстового поля внутри IB вместо
viewDidLoad
Какого черта я здесь скучаю!?
2 ответа
Вам необходимо реализовать правильный метод делегата текстового поля. Нет такого метода делегата, как textFieldShouldReturn(textField:)
, Правильный метод textFieldShouldReturn(_:)
,
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
searchBar.resignFirstResponder()
return false
}
_
имеет огромное значение. Возможно, вы скопировали старую реализацию Swift 2.
Лучше позволить Xcode выполнить автозавершение кода, чтобы гарантировать, что вы получите правильную подпись любого метода, который вы реализуете или вызываете.