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)
AppleドキュメントRef: NSNotification.Name.keyboardDidShowNotification
今このように使っていると思います。
NotificationCenter.default.addObserver(
self,
selector: #selector(self.keyboardDidShow(notification:)),
name: UIResponder.keyboardDidShowNotification, object: nil)
/* You can substitute UIResponder with any of it's subclass */
UIResponder
doc asType Propertyにリストされています。
Swift 4,2での作業
func bindToKeyboard(){
NotificationCenter.default.addObserver(self, selector: #selector(UIView.keyboardWillChange(_:)), name:
UIApplication.keyboardWillChangeFrameNotification
, object: nil)
}
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)