贡献作者 -【XJDomain】
博客XJ: GitHub:注意⚠️:
在接受通知的时候需要移除通知:
// 移除通知 <通知移除是在发通知控制器中移除> deinit { NotificationCenter.default.removeObserver(self) } 通知移除是在发通知控制器中移除>
接受键盘通知方法
// 监听键盘通知 NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillChangeFrame(note:)), name:.UIKeyboardWillChangeFrame , object: nil)
// 键盘通知监听 @objc fileprivate func keyboardWillChangeFrame(note : Notification) { // 获取动画执行的时间 let duration = note.userInfo?["UIKeyboardAnimationDurationUserInfoKey"] as! TimeInterval // 获取键盘最终Y值 不能转成NSRect let endFrame = (note.userInfo?["UIKeyboardFrameEndUserInfoKey"] as! NSValue).cgRectValue let y = endFrame.origin.y // 计算工具栏距离底部的间距 let margin = kScreenH - y toolBarCons.constant = margin UIView.animate(withDuration: duration) { self.view.layoutIfNeeded() } }