我目前在我的表格 View 上有这个设置。:

tableView.keyboardDismissMode = .interactive

我有一个通知观察者设置,如下所示:
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
我的 keyboardWillHide 方法在键盘最终被拖下并离开屏幕时被调用。有没有办法检测键盘是如何被解雇的?当 keyBoardWillHide 被调用时,我需要知道是因为按下了返回键还是用户拖动了它以便我可以调整动画。是否有任何回调?

最佳答案

设置一个变量,如:

var checker : Bool = false

为 keyBoardWillHide 设置通知:
override func viewDidLoad() {
        super.viewDidLoad()
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: .UIKeyboardWillHide, object: nil)
    }
Return 按键返回键盘:
 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            checker = true
            textField.resignFirstResponder()
            return true
        }

键盘将隐藏选择器调用:
func keyboardWillHide (notif: Notification)
{
    if (checker == true)
    {
        print ("Return key pressed")
    }
    else
    {
        print ("Table dragged down")
    }
    checker = false
}

希望这可以帮助。

10-08 05:47