我在苹果文档中找到了 iPhone 的键盘范围,但我找不到 iPad 的键盘范围。请你帮助我好吗?
问问题
20079 次
4 回答
60
代码中的整个答案如下所示。首先,您需要注册通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
这里还有更多。请注意,您也需要摆脱它们(使用removeObserver
)。
然后,您需要一个获取通知以获取大小的方法。请注意,最初的大小是不旋转的(因为UIWindow
不旋转。它的内容会旋转)。
- (void) keyboardDidShow:(NSNotification*)notification {
CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
NSLog(@"keyboard frame raw %@", NSStringFromCGRect(keyboardFrame));
UIWindow *window = [[[UIApplication sharedApplication] windows]objectAtIndex:0];
UIView *mainSubviewOfWindow = window.rootViewController.view;
CGRect keyboardFrameConverted = [mainSubviewOfWindow convertRect:keyboardFrame fromView:window];
NSLog(@"keyboard frame converted %@", NSStringFromCGRect(keyboardFrameConverted));
}
显然,如果您mainSubviewOfWindow
通过其他方式引用您的,请使用它。
于 2011-09-04T21:41:16.320 回答
18
iPhone 纵向 216 像素,横向 162 像素,iPad 纵向 264 像素,横向 352 像素。这对 2010 年的美国键盘有效。
对于其他语言,这些大小可能会有所不同,并且对于美国也可能会发生变化。
于 2010-10-26T15:16:32.390 回答
11
请注意,如果用户选择在 iPad 上使用“拆分”键盘,则UIKeyboardDidShowNotification /* UIKeyboardDidHideNotification * 通知将不会被触发。相反,UIKeyboardDidChangeFrameNotification通知将在显示和隐藏时触发。您将不得不分析keyboardFrame.origin.y以确定究竟发生了什么(显示或隐藏)。
于 2012-01-24T05:27:22.463 回答
8
如果其他人需要它,我只是找到它。
键盘通知用户信息键
于 2010-04-30T08:35:04.040 回答