外接显示器的窗口影响主屏幕
Posted
技术标签:
【中文标题】外接显示器的窗口影响主屏幕【英文标题】:Window for an External Display affects primary screen 【发布时间】:2013-11-01 20:56:04 【问题描述】:当有额外的屏幕(最多 2 个)时,我会创建一个新窗口。每个窗口在不同的屏幕中显示不同的内容。
问题出在ios7下:创建并显示这个外部窗口使得状态栏在第一个可见,也是主要的。然后,系统增加了一些空间(20 点)来重新排列顶栏和一些视图。它对我不起作用,因为它是一个自定义栏。
为什么会发生这种情况,如何停止系统添加状态栏?
这是有问题的代码:
- (void) handleScreenConnectNotification:(NSNotification*)notification
NSLog(@"screens=%@ _secondWindow = %@",[UIScreen screens], _secondWindow );
if ( [[UIScreen screens] count] > 1)
// Associate the window with the second screen.
// The main screen is always at index 0.
UIScreen * secondScreen = [[UIScreen screens] objectAtIndex:1];
CGRect screenBounds = secondScreen.bounds;
_secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
_secondWindow.screen = secondScreen;
_secondWindow.hidden = NO;
我已尝试将 _secondWindow 的框架更改为较小的区域。不能解决问题。
要处理状态栏,应用程序是这样配置的 在app属性列表下:查看基于控制器的状态栏外观=YES 我为不想显示状态栏的每个视图添加了此代码:
- (BOOL)prefersStatusBarHidden
return YES;
【问题讨论】:
【参考方案1】:因为您提到了“基于视图控制器的状态栏外观” - 也尝试将“状态栏最初隐藏”设置为 true。
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
【讨论】:
【参考方案2】:要正确处理您不希望最初隐藏状态栏的情况,请为您的第二个窗口提供一个 rootViewController。这个 rootViewController 必须实现 -(BOOL)prefersStatusBarHidden。
【讨论】:
以上是关于外接显示器的窗口影响主屏幕的主要内容,如果未能解决你的问题,请参考以下文章