问题是我正在启动应用内电子邮件并触发键盘(通过 UITextFields),它们在我的横向应用程序中出现纵向。我可以将其纵向旋转,然后再次横向旋转,观察应用程序从纵向旋转到横向时出现的黑色旋转角动画。由于我在 shouldAutorotateToInterfaceOrientation() 方法中锁定了除横向之外的任何方向,因此视图本身不会旋转,这很好。但是,当我添加这些视图时,应用程序一直认为它们是纵向的,正如 UITextField 键盘和应用内电子邮件方向所证明的那样,除非我旋转到纵向,然后再回到横向(这会触发 autorotate 方法返回 true。
当我添加视图时,关于如何让这个应用程序知道它已经在景观中的任何建议?
更新:我曾尝试设置状态栏方向,但它对我不起作用。我不知道我删除然后向应用程序添加视图是否会混淆它对方向的理解。您知道诸如 UITextField 和应用内邮件之类的苹果对象如何确定要显示的方向吗?他们只是轮询 sharedApplication 方向吗?对我来说奇怪的是,当我删除并添加新视图时,我倾斜手机以更改为横向的这些苹果小部件似乎突然恢复为纵向显示。即这个一般的事件序列:
1)横向应用,触发键盘,显示纵向
2)倾斜装置使其进入景观。关闭和打开键盘,它是横向的。
3)删除并添加一些视图。
4)再次触发键盘,它以纵向显示