如何在 iOS Swift 中可靠地获取键盘高度?

Che*_*ong 2 keyboard-events uikeyboard ios notificationcenter swift

我有这个代码来检测键盘何时显示并获取其高度。

@objc func keyboardWasShown (_ notification: Notification) {
    let keyboardSize = (notification.userInfo![UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.size;
    print ("KEYBOARD SIZE: \(keyboardSize.height)");
}
Run Code Online (Sandbox Code Playgroud)

起初,当我第一次点击 UITextView 使其成为第一响应者时,控制台显示 271.0 点。

然后我点击视图以关闭键盘。然后我再次点击 UITextView。现在它显示 226.0 点。

第一次和后续试用中的键盘布局没有变化。一开始我总是得到 271,然后下一个总是 226。正确的是 271。

为什么会这样?以及如何修复它?

Che*_*ong 6

从是答案,我发现我应该使用UIKeyboardFrameEndUserInfoKey而不是UIKeyboardFrameBeginUserInfoKey.