Objective c 键盘大小返回错误的值?
在iPad上,订阅Objective c 键盘大小返回错误的值?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,在iPad上,订阅UIKeyboardDidShowNotification NSDictionary* info = [aNotification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; NSLog(@"%@", NSStringFromCGSize(kbSize)); 打印{352,1024} 这不对吗?不仅键盘的高度这么大,高度怎么
UIKeyboardDidShowNotification
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
NSLog(@"%@", NSStringFromCGSize(kbSize));
打印{352,1024}
这不对吗?不仅键盘的高度这么大,高度怎么能比宽度大呢?
还是我遗漏了什么?我打赌尺寸是以静态方向报告的(“窗口”方向实际上从未改变),因此我建议将其转换为您感兴趣的视图。我的常规技巧是将其转换为窗口的rootViewController视图的坐标空间:
CGRect rawKeyboardRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect properlyRotatedCoords = [self.view.window convertRect:rawKeyboardRect toView:self.view.window.rootViewController.view];
或者,如果您有一个可用的视图,则选择一个更合适的视图。关键是窗口坐标空间中报告的任何坐标都不会旋转,即使窗口的rootVC视图是旋转的。我花了很多时间试图找出为什么scrollRectToVisible在我的仅横向应用程序中不起作用。谢谢