Cocoa如何在特定屏幕上显示NSWindow

4
在Mac应用程序中,我如何在特定的NSScreen上打开NSWindow(比如第二个屏幕)?以下是我显示窗口的代码,但它只能显示在主屏幕上。
self.windowController = NSStoryboard(name: "Main", bundle: nil).instantiateControllerWithIdentifier("mainWindow") as! NSWindowController
let window = self.windowController.window!
window.makeKeyAndOrderFront(self)

欢迎提供Swift和OC两种语言的答案。

我非常确定操作系统喜欢将多个屏幕视为“一个大屏幕”,因此您可以通过位置来控制它。请参见此处https://dev59.com/vnLYa4cB1Zd3GeqPWlYI - Justin Meiners
@JustinMeiners 谢谢!我会试一下。 - hklel
1个回答

3
使用类函数“screens”来获取您拥有的所有屏幕的数组。从数组中选择您想要窗口出现在的屏幕。使用该窗口上的坐标(相对于主窗口)来为您的新窗口创建一个矩形,如下所示:
    [self.window setFrame:CGRectMake(pos.x, pos.y, [mywindow frame].size.width     
        , [mywindow frame].size.height) display:YES];

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接