【发布时间】:2010-03-13 03:00:29
【问题描述】:
我基本上是在尝试重现“At Once”应用程序的核心功能。我有一个相机视图和另一个带有文本视图的视图。
我将两个视图都添加到窗口中。到目前为止一切都很好。
[window addSubview:imagePicker.view];
[window addSubview:textViewController.view];
我了解 UIImagePickerController 不支持自动旋转,因此我通过查看 UIDeviceOrientationDidChangeNotifications 并将必要的转换应用于 textViewController.view 来手动处理它。
现在,这里的问题是键盘。如果我什么都不做,它只会停留在纵向模式。我可以通过将以下代码添加到通知处理程序来让它旋转。
[[UIApplication sharedApplication] setStatusBarOrientation:interfaceOrientation];
[textView resignFirstResponder];
[textView becomeFirstResponder];
但是,以下简单的测试会产生奇怪的行为。
- 以纵向模式启动应用程序。
- 将设备顺时针旋转 90 度。
- 将设备逆时针旋转 90 度(回到初始位置)。
- 将设备顺时针旋转 90 度。
在第 4 步之后,将显示纵向键盘,而不是横向键盘,并倾斜以适合横向键盘框架。
也许我的方法从一开始就是错误的。我想知道是否有人能够可靠地使键盘更改其方向以响应 setStatusBarOrientation。
【问题讨论】: