仅设置键盘方向(iOS 6)

仅设置键盘方向(iOS 6),ios,ios6,Ios,Ios6,在我尝试使用ios 6 SDK进行一些更改之前,我的应用一直运行良好 应用程序99%的时间都在纵向模式下运行。仅允许在info.plist中使用portait模式,这就限制了这一点 有一个视图控制器需要以横向模式显示。这是通过简单地将视图旋转90度“手动”实现的,如下所示: self.view.transform = CGAffineTransformMakeRotation(3.14159/2); 这在iOS 6中仍然可以正常工作 但是,此视图控制器有一些文本字段。当用户点击一个按钮时,它会

在我尝试使用ios 6 SDK进行一些更改之前,我的应用一直运行良好

应用程序99%的时间都在纵向模式下运行。仅允许在info.plist中使用portait模式,这就限制了这一点

有一个视图控制器需要以横向模式显示。这是通过简单地将视图旋转90度“手动”实现的,如下所示:

self.view.transform = CGAffineTransformMakeRotation(3.14159/2);
这在iOS 6中仍然可以正常工作

但是,此视图控制器有一些文本字段。当用户点击一个按钮时,它会显示键盘。因为我只旋转了视图(实际上并没有改变设备的方向),所以键盘显示为纵向模式,这是不好的

在以前版本的iOS中,我将状态栏的方向设置为横向,作为副产品,这也会将键盘设置为横向,如下所示:

[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
但是,这已经停止在iOS 6上工作


我读过无数次堆栈溢出试图让它工作,但仍然没有运气。

更改键盘方向和变换是一个困难的部分,不是一个好的解决方案(特别是当它更改状态栏方向时)

更好的解决方案是允许应用程序支持所有方向

使用旋转支持在ViewController中实现方向代理

仅支持景观

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return interfaceOrientation == UIInterfaceOrientationLandscapeLeft
    || interfaceOrientation == UIInterfaceOrientationLandscapeRight ;
}

- (BOOL)shouldAutorotate
{
    return NO;
}
仅支持肖像

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

难道你不能简单地以模式呈现单个viewController并允许它仅使用横向视图吗?我不介意,但我的第一次尝试没有成功。新的视图控制器正在portait模式下启动。我为preferredInterfaceOrientationForPresentation指定了一个方法,以返回横向模式,但这个方法似乎从未被调用……感谢您提供了如此清晰的答案,但不幸的是,对我来说,它仍然不起作用。它只是忽略限制,并在旋转设备时自动旋转。有趣的是,这些方法中只有一种被调用:supportedInterfaceOrientations。另外两个从来没有接到过电话。我需要做些什么来告诉视图控制器这些委托方法可用吗?使用ios6对吗?完成了这三个步骤吗?我的意思是包括目标和.plist中的支持方向变化?是的,如果我理解正确的话。这是iOS 6。我在targets中的4个按钮看起来像上面的屏幕截图(没有一个是深灰色的),在My info.plist中,它说“支持的界面方向(数组):0”哦。。现在一切似乎都好了。也做一次清洁,然后再次跑步。如果你不介意的话,请通过ramshadram90@gmail.com谢谢,但它还是不起作用。它只是不调用这些方法中的任何一个,除了supportedInterfaceOrientations。我在其他地方看到过一些答案,认为应该使用一个类别将这些方法添加到视图控制器类中。问题是我认为这会全局地将所有视图控制器设置为相同的方向吗?