【问题标题】:NSPanel to secondary screen when in fullscreen modeNSPanel 在全屏模式下到辅助屏幕
【发布时间】:2012-08-24 08:15:27
【问题描述】:

当主窗口进入全屏模式时,我正在尝试让 NSPanel 填充第二个监视器。

我将面板上的“全屏”设置为“辅助窗口”,它会留在屏幕上,我可以手动将它拖到另一台显示器上,这很好。但是,如果我尝试以编程方式执行此操作,它会移动到另一个空间(尽管它在正确的屏幕上被最大化)。

-(void)windowDidEnterFullScreen:(NSNotification *)notification
{
    NSLog(@"Now in full screen");
    NSArray *screens = [NSScreen screens];

    for (NSScreen *screen in screens) {
        if ([self.window.screen isEqualTo:screen]) {
            NSLog(@"Main Window assigned to screen:%@",screen);
        } else {
            NSLog(@"Assigning auxPanel to screen:%@",screen);
            NSRect screenRect = screen.frame;
            [self.auxPanel setFrame:screenRect display:YES];
        }
    }
}

提前致谢。

【问题讨论】:

  • 有趣的是,如果我启用标题栏(在 NSPanel 上),上面的代码可以正常工作。如果我关闭面板上的标题栏,它会移动到另一个空间。
  • 你好 skwashua。很抱歉在这里回复我自己的问题。但是,我想在这里提出我自己的问题,它指的是同一领域。我是新手,对这个功能非常新鲜。我要做的是,我的应用程序中有一个窗口。当用户进入全屏模式时,我想全屏打开一个新窗口,而不是我原来的单个窗口。所以,为此,我需要在这里做什么全屏选项有两个选项,主要和辅助。我将从对象列表中获取第二个窗口。但是,如何实现呢?

标签: objective-c macos nswindow


【解决方案1】:

我不确定为什么需要启用标题栏,但我只是添加了:

[self.auxPanel setStyleMask:NSBorderlessWindowMask];

而且它似乎工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多