Клавиатура не увольняется - PullRequest
0 голосов
/ 23 мая 2018

Я понимаю, что это тривиальный вопрос с тоннами ответа на 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 ]

0 голосов
/ 23 мая 2018

Вам необходимо реализовать правильный метод делегата текстового поля.Нет такого метода делегата, как textFieldShouldReturn(textField:).Правильный метод - textFieldShouldReturn(_:).

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    searchBar.resignFirstResponder()
    return false
}

. _ имеет огромное значение.Возможно, вы скопировали старую реализацию Swift 2.

Лучше всего позволить Xcode выполнить автозавершение кода, чтобы гарантировать, что вы получите правильную подпись любого метода, который вы реализуете или вызываете.

0 голосов
/ 23 мая 2018

Используйте этот код

view.endEditing(true) 
...