Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 手动更改位于摄影机视图顶部的视图的键盘方向_Iphone_Keyboard_Camera - Fatal编程技术网

Iphone 手动更改位于摄影机视图顶部的视图的键盘方向

Iphone 手动更改位于摄影机视图顶部的视图的键盘方向,iphone,keyboard,camera,Iphone,Keyboard,Camera,我基本上是想重现AtOnce应用程序的核心功能。我有一个摄像头视图和另一个带有文本视图的视图 我将两个视图都添加到窗口中。到目前为止一切顺利 [window addSubview:imagePicker.view]; [window addSubview:textViewController.view]; 我知道UIImagePickerController不支持自动旋转,因此我通过观察UIDeviceOrientationIDChangeNotifications并对textViewCont

我基本上是想重现AtOnce应用程序的核心功能。我有一个摄像头视图和另一个带有文本视图的视图

我将两个视图都添加到窗口中。到目前为止一切顺利

[window addSubview:imagePicker.view];
[window addSubview:textViewController.view];
我知道UIImagePickerController不支持自动旋转,因此我通过观察UIDeviceOrientationIDChangeNotifications并对textViewController.view应用必要的转换来手动处理

现在,这里的问题是键盘。如果我什么也不做,它只会停留在肖像模式。我可以通过向通知处理程序添加以下代码使其旋转

[[UIApplication sharedApplication] setStatusBarOrientation:interfaceOrientation];
[textView resignFirstResponder];
[textView becomeFirstResponder];
但是,下面的简单测试会产生奇怪的行为

以纵向模式启动应用程序。 将设备顺时针旋转90度。 将设备逆时针旋转90度回到初始位置。 将设备顺时针旋转90度。 在第4步之后,显示的不是横向模式键盘,而是纵向样式键盘,倾斜以适合横向键盘框架


也许我的方法从一开始就错了。我想知道是否有人能够可靠地让键盘改变方向以响应SetStatusBaroOrientation。

好吧,不管你做什么,这都是黑客行为。相机/选择器只能在portait模式下工作。您可以通过处理转换来解决这个问题。但不幸的是,当你这样做的时候,你不能真正依靠每件事都能正常工作。对不起,没有最终答案