Ios 无法获取UIKeyboardFrameEndUserInfoKey的横向值
在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之前,请尝试将其转换为视图坐标,例如:Ios 无法获取UIKeyboardFrameEndUserInfoKey的横向值,ios,objective-c,Ios,Objective C,在iOS 8之前,我可以使用UIKeyboardBoundSuserInfo键获取键盘信息 NSValue*value=[info-objectForKey:UIKeyboardBoundsUserInfoKey] 我意识到它已经贬值了,而从iOS 8开始,它就不再起作用了。我尝试使用UIKeyboardFrameEndUserInfoKey,但它似乎返回了纵向值,即使在横向中也是如此。当我记录@%@[info objectForKey:UIKeyboardBoundsUserInfoKey];
CGRect rect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect convertedRect = [self.view convertRect:rect fromView:nil];
NSValue *value = [NSValue valueWithCGRect:convertedRect];