キーボードの高さが2回目以降で縮む
ストリーボードに素朴に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
}
}