Нераспознанный селектор, отправленный в экземпляр (keyboardDidShow)

#ios #swift3 #nsnotificationcenter

#iOS #swift3 #nsnotificationcenter

Вопрос:

Я пытаюсь заставить уведомления клавиатуры работать в моем приложении, но почему-то я продолжаю сталкиваться с этой ошибкой. Это мой код:

 override func viewWillAppear(_ animated: Bool) {

    NotificationCenter.default.addObserver(self, selector: Selector(("keyboardDidShow:")), name: .UIKeyboardDidShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: Selector(("keyboardWillHide:")), name: .UIKeyboardWillHide, object: nil)

}

override func viewWillDisappear(_ animated: Bool) {

    NotificationCenter.default.removeObserver(self)

}

func keyboardDidShow(notification : Notification)
{

    print("keyboard shown")
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue.size
    {

        print(keyboardSize)

    }


}

func keyboardWillHide(notification : Notification)
{



}
  

Честно говоря, я не могу найти, где я ошибаюсь. Я продолжаю получать сообщение об ошибке, как указано в заявлении вопроса.

Комментарии:

1. Интересно, какой экземпляр не отвечает на селектор «keyboardWillShow» и кажется, что что-то не так с этими «did / will», потому что вы подписываетесь с помощью селектора -didShow, почему тогда у вас нераспознанная ошибка -willShow?

2. проверьте один раз, если вы создали уведомление в любом другом классе

3. func keyboardWillHide(_ notification

4. Перед первым параметром отсутствует символ подчеркивания

5. Вы также должны изменить синтаксис селектора на #selector(keyboardWillHide(_:))