Закройте клавиатуру iOS, прикоснувшись к ней снаружи (более разумно) - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть UIViewController с UITextfield и несколькими другими элементами (несколько подпредставлений и кнопок).Я хочу закрыть клавиатуру при нажатии где-нибудь за пределами UITextfield.

Я знаю, что есть ответ Закройте клавиатуру iOS, коснувшись в любом месте, используя Swift , но этот способ не работает, если пользователь нажимает на подпредставления или кнопки viewController.Я могу добавить аналогичные UITapGestureRecognizer для каждого подпункта и кнопки, но есть ли более разумный способ решить эту проблему?

1 Ответ

0 голосов
/ 20 ноября 2018
extension UIViewController{
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
}

Также, если у вас есть элементы в UIScrollView, добавьте также этот метод:

extension UIScrollView {
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.next?.touchesBegan(touches, with: event)
    }
}
...