在我们的应用程序中,我们总是强制屏幕的方向。在iOS8之前,键盘的方向与状态栏的方向相关联,但现在在iOS8中似乎不是这样。
现在我们看到的情况是我们的屏幕(和状态栏)将正确定位在横向,但键盘仍然是纵向的。为了纠正我们必须在键盘以横向显示之前将设备从横向移动到纵向到横向。
如果键盘方向不再与状态栏绑定,是否有办法强制键盘的方向?
编辑: 此代码在iOS6和7下工作。它用于更改状态栏的方向(以前也用于更改键盘的方向)并转换屏幕。
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
if( isIpad() )
{
self.navigationController.view.center = CGPointMake( 374.0, 512.0 );
self.navigationController.view.transform = CGAffineTransformMakeRotation( GlobalInfo::degreesToRadians( 90 ) ) ;
self.navigationController.view.bounds = CGRectMake( 0, 0, 1024, 748 );
}
else
{
self.navigationController.view.center = CGPointMake( 150.0, 240.0 );
self.navigationController.view.transform = CGAffineTransformMakeRotation( GlobalInfo::degreesToRadians( 90 ) ) ;
self.navigationController.view.bounds = CGRectMake( 0, 0, 480, 300 );
}
答案 0 :(得分:1)
在iOS8之前,他们的键盘方向与状态栏的方向相关联,但在iOS8中,它与设备的方向相关联。您可以使用以下代码强制设备的方向。
// Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa).
// This is because rotating the device to the left requires rotating the content to the right.
[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];