当前位置:  开发笔记 > IOS > 正文

iPad键盘尺寸

如何解决《iPad键盘尺寸》经验,为你挑选了4个好方法。

我在苹果文档中找到了iPhone的键盘界限,但我找不到iPad的键盘界限.请你帮助我好吗?



1> Dan Rosensta..:

代码中的整个答案看起来像这样.首先,您需要注册通知:

[[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通过其他方式引用你的,请使用它.


哇,谢谢@Yar!这正是我所需要的,并为我节省了很多心痛.

2> Peter Robert..:

对于iPhone,纵向为216像素,横向为162像素,对于iPad,纵向为264像素,横向为352像素.这适用于2010年的美国键盘.

对于其他语言,这些大小可能会有所不同,对于美国也可能会有所不同.


你不应该依赖这些测量.不同语言使用不同的键盘大小.即使是美国英语键盘的尺寸也可能在iOS的未来版本中发生变化.您应该始终以编程方式查询键盘的大小:请参阅@ Infinity的答案.
错误.不同语言的键盘可以有不同的大小.例如,日语键盘与英语不同.使用Yar的方法查看当前键盘的大小.

3> Andrei Tchij..:

请注意,如果用户选择在iPad上使用"拆分"键盘,则不会触发UIKeyboardDidShowNotification/*UIKeyboardDidHideNotification*通知.相反,将在show和hide上触发UIKeyboardDidChangeFrameNotification通知.您将不得不分析keyboardFrame.origin.y以确定究竟发生了什么(显示或隐藏).



4> Infinite Pos..:

我刚刚发现它,如果有人需要它.
键盘通知用户信息键

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有