我有一个为 iOS8 编译的应用程序。该应用程序在项目设置中设置为仅允许纵向。根据设计,应用程序的视图不会旋转为横向。在 iOS7 中,当您旋转设备以横向时,键盘不会旋转。这是我想要的行为。
但是,在 iOS8 中,当您将设备旋转到横向时,键盘将错误地切换到横向。
我已经在实体 iPhone 6 Plus 上进行了测试,以确认该问题。还通过模拟器在 iPhone 5 上进行了测试。知道如何解决这个问题吗?
潜在的修复
我不记得为什么要这样做,但我有一些在应用程序启动时执行的引导代码:
d.window.rootViewController = tabBarController;
其中 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"];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)