ストリーボードに素朴にUITextViewを置いています。

下記コードを試したところ、1回目のキーボードの高さはprintで確認したところ346.0でしたが、2回目は288.0

表示されたキーボードは同じ見た目ですので、高さ(keyboardSize.height)が変わった理由がわかりません。何故高さが変わるのでしょうか?

もしくは正しい、高さの取得方法は別にありますか?

import UIKit

class ViewController: UIViewController, UITextViewDelegate {
    @IBOutlet weak var hogeTextView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.hogeTextView.delegate = self
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
    }

    @objc func keyboardWillShow(notification: NSNotification) {
        guard let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue else  { return }

        print(keyboardSize.height)
    }

    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {

        if (text == "\n") {
            hogeTextView.resignFirstResponder()
            return false
        }
        return true
    }
}