Swift 3: нераспознанный селектор отправлен на экземпляр (KeyboardWillShow)
Я много об этом ищу по переполнению стека, но в соответствии с их решением моя программа такая же, как упомянуто, но все еще не работает.
func subscribeToKeyboardNotifications() {
NotificationCenter.default.addObserver(self, selector:Selector(("keyboardWillShow:")), name:NSNotification.Name.UIKeyboardWillShow, object: nil)
}
func keyboardWillShow(notification:NSNotification) {
view.frame.origin.y -= getKeyboardHeight(notification: notification)
}
2 ответа
Решение
Ваш аргумент для селектора должен быть #selector(keyboardWillShow)
, вот так:
func subscribeToKeyboardNotifications() {
NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
}
func keyboardWillShow(notification:NSNotification) {
view.frame.origin.y -= getKeyboardHeight(notification: notification)
}
Если вы не используете #selector, тогда он выдаст необработанное исключение NSType и, следовательно, завершит работу приложения.