Imr*_*ran 14 objective-c uikit ios ios8
我有一个为iOS8编译的应用程序.该应用程序设置为仅在项目设置中允许纵向方向.应用程序的视图不会按设计旋转到横向.在iOS7中,当您将设备旋转到横向时,键盘不会旋转.这是我想要的行为.
但是,在iOS8中,当您将设备旋转到横向时,键盘将错误地切换到横向.
我已在物理iPhone 6 Plus上对此进行了测试以确认问题.还通过模拟器在iPhone 5上进行了测试.知道如何解决这个问题吗?
潜在的修复
我不记得为什么我这样做但我有一些在应用程序启动时执行的引导代码:
d.window.rootViewController = tabBarController;
Run Code Online (Sandbox Code Playgroud)
其中tabBarController是应用程序的顶级选项卡栏控制器.删除此引导代码可修复此问题.

建议的调试
虽然这在iOS的早期版本中没有出现,但看起来iOS8的行为有点不同.我建议你查看你拥有的任何自举代码.您可能必须尝试一个示例项目并添加一些位,直到找到罪魁祸首,因为在我的情况下很难跟踪.下面提供的两个答案是解决症状而不是原因,所以我没有将它们标记为正确.
我也有类似的问题,并且发现在 iOS8 之前,键盘方向与状态栏的方向相关,但不幸的是,在 iOS8 中,键盘和状态栏方向是分开的。虽然它无助于解决您的问题,但希望这提供了一些有关其发生原因的信息。
编辑:尝试以下代码 - 它对我有用。根据允许的方向,您必须明显改变翻转设备的方式。
// Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa).
// This is because rotating the device to the left requires rotating the content to the right.
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6635 次 |
| 最近记录: |