iOS 11 - 键盘高度在键盘通知中返回 0

标签 ios objective-c nsnotificationcenter

我一直在使用键盘通知,没有任何问题,并获得了键盘的准确高度。

- (void)keyboardDidShow:(NSNotification *) notification{
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    NSLog(@"%f",keyboardSize.height);}

但在 iOS 11 中,调用通知时键盘的大小为 0。

在这种情况下会出现什么问题?我正在使用 xcode 9 Beta 5

最佳答案

使用这个:

CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

对于 Swift,您可以使用:

let keyboardSize = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue.size

关于iOS 11 - 键盘高度在键盘通知中返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689664/

相关文章:

ios - NSNotificationCenter 将选择器发送到错误的实例

objective-c - 后代作为 parent 的代表

ios - iOS在uitextfield中替换char

iPhone 3.0 SDK 与 iPhone 2.0 SDK

iOS:使用自动布局缩放不同的屏幕尺寸

objective-c - mainThread阻塞时UIActivityIndi​​catorView如何不停止?

ios - 多选在 IOS 中无法正常工作

ios - 无法将表达式的类型 'Void' 转换为类型 'CFAllocator!'

ios - Xcode Storyboard - 项目未出现

iphone - UIViewController 应该在什么时候添加/删除 NSNotificationCenter 上的观察者?