#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(_:))