我用这个代码来确定键盘的大小:

- (void)keyboardWillChange:(NSNotification *)notification {
    NSDictionary* keyboardInfo = [notification userInfo];
    NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
    CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];

}

我在模拟器里运行这个.

问题是,由于iOS8不会给出正确的值,如果键盘建议是向上的,或者如果我按下它们,我会得到不同的(不正确的)值.

我如何才能获得包括键盘建议在内的键盘的确切大小?

推荐答案

使用

NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameEnd使用rInfoKey];

Ios相关问答推荐

Flutter应用程序无法使用IOS/Swift的蓝牙核心库发现某些外围设备

如何在react 本机模块中使用Bundle.main.Path()在SWIFT中导入assets资源

SwiftUI图表-默认情况下,X轴数据点的间距不相等

许多文本字段的性能问题

Swift - 缺少函数参数在编译期间不会失败,甚至会导致不同的数据类型?

Swift Combine和iOS版本限制?

Strange UIView.animate更改UIButton标题 colored颜色 的行为

不使用故事板创建 iMessage 应用程序

如何为 XCTest、SwiftUI 预览等初始化带有 @MainActor 注释的 Swift 类

iOS SwiftUI - 从以前的 struct 调用函数

有没有办法访问自动生成的 Codable 一致性的编码键?

SwiftUI 我自己的渲染函数的返回类型是什么?

XCode 14 Beta 中 NavigationStack 的正文渲染问题

为什么我的应用在 Testflight 中没有下载 dSYM 按钮?

UIScrollview 获取touch 事件

Swift枚举继承

在 Swift 中禁用向后滑动手势

什么是伞头?

UIView 中的 safeAreaInsets 在 iPhone X 上为 0

使用 swift 3 在 UIView 上添加阴影