【问题标题】:Cocoa show NSWindow on a specific screen可可在特定屏幕上显示 NSWindow
【发布时间】:2016-02-16 01:41:22
【问题描述】:

在 Mac 应用程序中,如何在特定的 NSScreen(假设是第二个屏幕)上打开 NSWindow

这是我显示窗口的方式,但它只显示在主屏幕上

self.windowController = NSStoryboard(name: "Main", bundle: nil).instantiateControllerWithIdentifier("mainWindow") as! NSWindowController
let window = self.windowController.window!
window.makeKeyAndOrderFront(self)

欢迎使用 Swift 和 OC 的答案。

【问题讨论】:

  • 我很确定操作系统喜欢将多个屏幕视为“一个大屏幕”,因此您可以通过位置来控制它。见这里stackoverflow.com/questions/16658582/…
  • @JustinMeiners 谢谢!我会试试看。

标签: macos cocoa nswindow nswindowcontroller


【解决方案1】:

使用类函数“screens”来获取您拥有的所有屏幕的数组。从阵列中,选择您希望窗口出现的屏幕。使用该窗口上的坐标(相对于主窗口)为您的新窗口制作一个矩形,如下所示;

    [self.window setFrame:CGRectMake(pos.x, pos.y, [mywindow frame].size.width     
        , [mywindow frame].size.height) display:YES];

其中 pos 是从屏幕数组和您的选择中计算出来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多