Ios 拖动时键盘高度等于0

Ios 拖动时键盘高度等于0,ios,swift,Ios,Swift,我使用的是collectionView?.keyboardismissmode=.onDrag。解雇键盘也行。但如果“拖动”时取消,则打印的高度等于0,这将导致以后出现问题。有人能解释一下我怎样才能摆脱这个吗?除此之外,我对发生这种情况的原因非常感兴趣 @objc func keyboardWillHide(notification: Notification) { guard let userInfo = notification.userInfo as NSDictionary? e

我使用的是
collectionView?.keyboardismissmode=.onDrag
。解雇键盘也行。但如果“拖动”时取消,则打印的高度等于0,这将导致以后出现问题。有人能解释一下我怎样才能摆脱这个吗?除此之外,我对发生这种情况的原因非常感兴趣

@objc func keyboardWillHide(notification: Notification) {
    guard let userInfo = notification.userInfo as NSDictionary? else {
        return
    }

    guard let keyboardFrame = userInfo.value(forKey: UIKeyboardFrameEndUserInfoKey) as? NSValue else {
        return
    }

    let keyboardRectangle = keyboardFrame.cgRectValue
    let keyboardHeight = keyboardRectangle.height

    print(keyboardHeight) //only prints 0 when dismissed on drag

    //do something with keyboard height
}

这是因为您使用UIKeyboardFrameEndUserInfoKey。UIKeyboardFrameEndUserInfoKey包含一个CGRect,用于在屏幕坐标中标识键盘的结束帧(在您的情况下,键盘将隐藏,因此高度将为0)。 因此,您应该使用UIKeyboardFrameBeginUserInfo键。它包含一个CGRect,以屏幕坐标(隐藏前)标识键盘的开始帧