在iOS8中,如何在iMessages / FB Messenger中以横向模式启用键盘?

在我的项目中,我有textViews与相关的input键盘在iOS8下的iPhone 6 Plus上的横向模式有奇怪的外观,如下所示:

在这里输入图像说明

内部有时似乎有不同的方向。

但是在某些情况下,键盘旋转很好,但是在方向改变和其他可见的错误时仍然有白色的空隙:

在这里输入图像说明

最后我们有了普通的扩展景观视图:

在这里输入图像说明

问题是如何获得没有错误的扩展键盘,如下所示:

在这里输入图像说明

将项目从xCode5.1 (及更早版本)迁移到xCode5.1 ,要做的很重要的事情是修改Info.plist文件,方法是添加Launch screen interface file base name密钥

在这里输入图像说明

您可以将事件设置为空string(通常是Launch xib的名称)。 如果没有这个简单的第一行将有上面的截图所呈现的所有问题。

Launch screen interface file base name的缺失导致以旧设备的标准分辨率在兼容模式下工作。 我们在每种情况下运行下面的代码

 NSLog(@"bounds = %@", NSStringFromCGRect(UIScreen.mainScreen.bounds)); 

Launch xib一个得到

 bounds = {{0, 0}, {414, 736}} // for iPhone 6Plus bounds = {{0, 0}, {375, 667}} // for iPhone 6 

没有它得到

 bounds = {{0, 0}, {320, 568}} 

所以,最后一种情况确实是兼容模式。

我发现了同样的问题。 当我只允许我的视图控制器的一个旋转。一旦我进入屏幕内部,我启用了屏幕旋转,而从屏幕出来,我禁用它。除了键盘UI之外,每件事情都很好。我search了很多论坛的解决scheme,但没有发现任何有用的东西。 无论如何,我试图了解模式,发现我使用viewDidDisappear而不是viewWillDisappear。

重要的是要禁用方向,然后再去另一个屏幕。希望这有助于。