注冊(cè)通知
// 注冊(cè)鍵盤即將出現(xiàn)通知
NotificationCenter.default.addObserver(self, selector: #selector(keyboardShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)
// 注冊(cè)鍵盤即將隱藏通知
NotificationCenter.default.addObserver(self, selector: #selector(keyboardHide(_:)), name: UIResponder.keyboardWillHideNotification, object: nil)
監(jiān)聽事件
/// 監(jiān)聽鍵盤即將出現(xiàn)事件
@objc func keyboardShow(_ noti: Notification) {
App.log("鍵盤即將出現(xiàn)")
let info = noti.userInfo
let kbRect = (info?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
UIView.animate(withDuration: 0.2) {
self.transform = CGAffineTransform(translationX: 0, y: -(kbRect?.size.height ?? 0) / 2)
}
}
/// 監(jiān)聽鍵盤即將隱藏事件
@objc func keyboardHide(_ noti: Notification) {
App.log("鍵盤即將隱藏")
UIView.animate(withDuration: 0.2) {
self.transform = CGAffineTransform(translationX: 0, y: 0)
}
}
移除通知
// 移除鍵盤監(jiān)聽
NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil)
NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillHideNotification, object: nil)