Swift 4显示/隐藏键盘查看

时间:2018-09-13 16:09:29

标签: ios swift nsnotificationcenter uikeyboard

我正在尝试在键盘上实现显示/隐藏,但是问题是当我显示键盘时,它会越过我的视图,更重要的是,它会越过我的文本字段和按钮,因此我可以输入,不能按我的按钮。

以下是键盘前的屏幕截图:

enter image description here

这是键盘出现的时间:

enter image description here

如您所见,我看不到文本字段和按钮。

这是我的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
          }
     }
 }

为什么我的键盘越过我的视野?以及如何解决?

1 个答案:

答案 0 :(得分:5)

您需要将public function deliverer() { return $this->belongsTo(Deliverer::class); } 替换为UIKeyboardFrameBeginUserInfoKey