在键盘显示和隐藏Ios Swift 4上查看响应度

时间:2019-01-23 08:43:41

标签: ios swift xcode uikeyboard

这是我的观点。

wiki

当我在文本视图中单击时,键盘位于顶部。因此我添加了一个类,并在该类中添加了这些功能。

    var objectObserver:UIViewController?

    func setKeyboardResponsiviness(observer:UIViewController){
            objectObserver = observer
            NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)

                NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
        }

        @objc func keyboardWillShow(notification: NSNotification) {
            if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
                if objectObserver!.view.frame.origin.y == 0 {
                    objectObserver!.view.frame.origin.y -= keyboardSize.height
                }
            }
        }

        @objc func keyboardWillHide(notification: NSNotification) {
            if objectObserver!.view.frame.origin.y != 0 {
                objectObserver!.view.frame.origin.y = 0
            }
        } 

添加代码后,整个屏幕向上滑动,这是预期的目标,但副作用是,一半的文本视图不在屏幕外。知道我该如何解决吗?

1 个答案:

答案 0 :(得分:1)

简单的解决方案是使用IQKeyboardManagerSwift。

pod 'IQKeyboardManagerSwift' // add this in your pod file.

在didFinishLaunchingWithOptions中添加以下代码。

IQKeyboardManager.shared.enable = true

我希望这会有所帮助。