首页 > 解决方案 > 显示键盘时,文本字段会从视图中消失

问题描述

我有一个带有自定义单元格计数文本字段的视图控制器。我正在使用下面的代码进行键盘管理,但视图上半部分的文本字段会向上和超出视图。键盘将视图向上移动,将这些文本字段推到视图的顶部边缘之外。

我正在使用以下代码进行键盘管理:

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
}

还有以下功能:

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

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

任何帮助将不胜感激!

标签: swiftxcodekeyboard

解决方案


请使用 pod 'IQKeyboardManagerSwift' 并将代码粘贴到 appdelegate

import IQKeyboardManagerSwift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        IQKeyboardManager.shared.enable = true
return true
}

推荐阅读