Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 键盘大小返回错误的值?_Objective C_Ios_Cocoa Touch - Fatal编程技术网

Objective c 键盘大小返回错误的值?

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} 这不对吗?不仅键盘的高度这么大,高度怎么

在iPad上,订阅
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在我的仅横向应用程序中不起作用。谢谢