我正在尝试在键盘上实现显示/隐藏,但是问题是当我显示键盘时,它会越过我的视图,更重要的是,它会越过我的文本字段和按钮,因此我可以输入,不能按我的按钮。
以下是键盘前的屏幕截图:
这是键盘出现的时间:
如您所见,我看不到文本字段和按钮。
这是我的viewDidLoad
NotificationCenter.default.addObserver(self, selector: #selector(CommentsController.keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(CommentsController.keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
,这里是方法:
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0{
self.view.frame.origin.y -= keyboardSize.height
}
}
}
@objc func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y != 0{
self.view.frame.origin.y += keyboardSize.height
}
}
}
为什么我的键盘越过我的视野?以及如何解决?
答案 0 :(得分:5)
您需要将public function deliverer() {
return $this->belongsTo(Deliverer::class);
}
替换为UIKeyboardFrameBeginUserInfoKey