我在本周早些时候遇到过这个问题,刚才又遇到了这个问题。当用户处于iPad的横向模式时,当键盘出现在屏幕上时,我正在设置键盘偏移。 iPad的尺寸为1024 x 768。
- (void) keyboardWasShown:(NSNotification *)nsNotification {
NSDictionary *userInfo = [nsNotification userInfo];
CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width);
// Portrait: Height: 264.000000 Width: 768.000000
// Landscape: Height: 1024.000000 Width: 352.000000
}
键盘的高度如何是1024?这意味着键盘现在覆盖整个屏幕。我认为高度应该是352,宽度应该是1024.这是一个错误吗?
答案 0 :(得分:10)
UIKeyboardFrameBeginUserInfoKey
包含CGRect的NSValue对象的键,用于标识屏幕坐标中键盘的起始帧。这些坐标不考虑由于界面方向改变而应用于窗口内容的任何旋转因子。因此,您可能需要在使用之前将矩形转换为窗口坐标(使用convertRect:fromWindow:方法)或查看坐标(使用convertRect:fromView:方法)。