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 и, следовательно, завершит работу приложения.

Другие вопросы по тегам