我在苹果文档中找到了iPhone的键盘界限,但我找不到iPad的键盘界限.请你帮助我好吗?
代码中的整个答案看起来像这样.首先,您需要注册通知:
[[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
通过其他方式引用你的,请使用它.
对于iPhone,纵向为216像素,横向为162像素,对于iPad,纵向为264像素,横向为352像素.这适用于2010年的美国键盘.
对于其他语言,这些大小可能会有所不同,对于美国也可能会有所不同.
请注意,如果用户选择在iPad上使用"拆分"键盘,则不会触发UIKeyboardDidShowNotification/*UIKeyboardDidHideNotification*通知.相反,将在show和hide上触发UIKeyboardDidChangeFrameNotification通知.您将不得不分析keyboardFrame.origin.y以确定究竟发生了什么(显示或隐藏).
我刚刚发现它,如果有人需要它.
键盘通知用户信息键