2017-12-23 7 views
0

私はcollectionView?.keyboardDismissMode = .onDragを使用しています。キーボードの解雇は正常に動作します。しかし、「抗力」で解消された場合、印刷された高さは0になり、後で問題を引き起こします。誰かが私はこれを取り除く方法を説明することはできますか?それに加えて、私はなぜこれが起こっているのかという理由に非常に興味があります。ドラッグ時にキーボードの高さが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 
} 

答えて

1

これは、UIKeyboardFrameEndUserInfoKeyを使用しているためです。 UIKeyboardFrameEndUserInfoKey画面座標でキーボードの終了フレームを識別するCGRectを含みます(キーボードが隠れるので、高さは0になります)。 したがって、UIKeyboardFrameBeginUserInfoKeyを使用する必要があります。スクリーン座標(隠す前)のキーボードの開始フレームを識別するCGRectが含まれています。

関連する問題