代码之家  ›  专栏  ›  技术社区  ›  Abdulmoiz Ahmer

在键盘上查看响应并隐藏iOS Swift 4

  •  2
  • Abdulmoiz Ahmer  · 技术社区  · 6 年前

    这是我的观点。

    enter image description here

    当我在文本视图中单击时,键盘就在上面。所以我添加了makea类,在那个类中,我添加了这些函数。

        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 回复  |  直到 6 年前
        1
  •  1
  •   SAIF    6 年前

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

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

    在didFinishLaunchingWithOptions中添加以下代码。

    IQKeyboardManager.shared.enable = true
    

    我希望这有帮助。