Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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
Ios 无法获取UIKeyboardFrameEndUserInfoKey的横向值_Ios_Objective C - Fatal编程技术网

Ios 无法获取UIKeyboardFrameEndUserInfoKey的横向值

Ios 无法获取UIKeyboardFrameEndUserInfoKey的横向值,ios,objective-c,Ios,Objective C,在iOS 8之前,我可以使用UIKeyboardBoundSuserInfo键获取键盘信息 NSValue*value=[info-objectForKey:UIKeyboardBoundsUserInfoKey] 我意识到它已经贬值了,而从iOS 8开始,它就不再起作用了。我尝试使用UIKeyboardFrameEndUserInfoKey,但它似乎返回了纵向值,即使在横向中也是如此。当我记录@%@[info objectForKey:UIKeyboardBoundsUserInfoKey];

在iOS 8之前,我可以使用UIKeyboardBoundSuserInfo键获取键盘信息

NSValue*value=[info-objectForKey:UIKeyboardBoundsUserInfoKey]

我意识到它已经贬值了,而从iOS 8开始,它就不再起作用了。我尝试使用UIKeyboardFrameEndUserInfoKey,但它似乎返回了纵向值,即使在横向中也是如此。当我记录@%@[info objectForKey:UIKeyboardBoundsUserInfoKey];在iOS 7上,它将记录NSRect:{0,0},{162,568},但当我记录@%@,[info objectForKey:UIKeyboardFrameEndUserInfoKey];它记录NSRect:{0,0},{568162}

有人知道在iOS 8上工作的valueForKey会以横向模式返回信息吗?还是交换[info objectForKey:UIKeyboardFrameEndUserInfoKey]中的数值以使其成为横向的? 非常感谢您的先进

根据about UIKeyboardFrameEndUserInfoKey

这些坐标不考虑任何旋转因子 作为界面方向的结果应用于窗口的内容 变化。因此,您可能需要将矩形转换为窗口 使用convertRect:fromWindow:方法或视图的坐标 在使用convertRect:fromView:方法之前,请先使用该方法进行坐标转换

因此,在将矩形存储为CGRect或NSValue之前,请尝试将其转换为视图坐标,例如:

CGRect rect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect convertedRect = [self.view convertRect:rect fromView:nil];
NSValue *value = [NSValue valueWithCGRect:convertedRect];