外接显示器的窗口影响主屏幕

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。

【讨论】:

以上是关于外接显示器的窗口影响主屏幕的主要内容,如果未能解决你的问题,请参考以下文章

macbook外接显示器的屏幕为啥会比较卡

(急)将笔记本连接上显示器后不清晰

Mac外接显示器无信号

急!!!!!笔记本外接一个显示器,但是分屏幕的分辨率只能设置在640*480.

如何在MacBook中将外接屏幕设置为主屏幕的方法

笔记本外接显示器分辨率怎么设置