开发需求:对键盘弹出及隐藏事件进行监听
需要通过NotificationCenter对键盘事件进行监听
- //键盘即将弹出
- NotificationCenter.default.addObserver(self,selector: #selector(self.keyboardShow(note:)),name: NSNotification.Name.UIKeyboardWillShow,object: nil)
- //键盘即将隐藏
- NotificationCenter.default.addObserver(self,selector: #selector(self.keyboardHidden(note:)),name: NSNotification.Name.UIKeyboardWillHide,object: nil)
-
- //键盘弹出监听
- @objc func keyboardShow(note: Notification) { guard let userInfo = note.userInfo else {return}
- guard let keyboardRect = userInfo[UIKeyboardFrameEndUserInfoKey] as? CGRect else{return}
- //获取键盘弹起的高度
- let keyboardTopYPosition = SCREENHEIGHT - keyboardRect.height
-
- }
-
- //键盘隐藏监听
- @objc func keyboardHidden(note: Notification){ }
-
- //取消键盘监听
- deinit { NotificationCenter.default.removeObserver(self) }
如果要监听键盘完全弹起或隐藏后进行操作,则使用
- //注意,这里使用的是UIKeyboardDidShow
- NotificationCenter.default.addObserver(self,name: NSNotification.Name.UIKeyboardDidShow,object: nil)
-
- //注意,这里使用的是UIKeyboardDidHide
- NotificationCenter.default.addObserver(self,name: NSNotification.Name.UIKeyboardDidHide,object: nil)