web-dev-qa-db-ja.com

タイプ「NSNotification.Name」にはメンバー「keyboardDidShowNotification」がありません

Swift 4.2でこのエラーが発生します

タイプ「NSNotification.Name」にはメンバー「keyboardDidShowNotification」がありません

ここに私のコードがあります:

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidShow(notification:)), name: NSNotification.Name.keyboardDidShowNotification, object: nil)

次の1つはSwift 4では正常に機能していましたが、Swift 4.2では正常に機能していませんでした

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardDidShow(notification:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)

enter image description here

AppleドキュメントRef: NSNotification.Name.keyboardDidShowNotification

14
Krunal

今このように使っていると思います。

NotificationCenter.default.addObserver(
    self, 
    selector: #selector(self.keyboardDidShow(notification:)), 
    name: UIResponder.keyboardDidShowNotification, object: nil) 

/* You can substitute UIResponder with any of it's subclass */

UIResponderdoc asType Propertyにリストされています。

60
Rakesha Shastri

Swift 4,2での作業

 func bindToKeyboard(){
    NotificationCenter.default.addObserver(self, selector: #selector(UIView.keyboardWillChange(_:)), name:
        UIApplication.keyboardWillChangeFrameNotification
        , object: nil)


}
5
Daniel

UIResponder.keyboardWillHideNotificationを使用する以外は、NSNotification.Name.のみを使用しました。これはSwift 5で動作しています

NotificationCenter.default.addObserver(self, selector: #selector(KeyboardLayoutConstraint.keyboardWillShowNotification(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHideNotification(_:)), name: UIResponder.keyboardWillHideNotification, object: nil)