macos - Cocoa 在特定屏幕上显示 NSWindow

标签 macos cocoa nswindow nswindowcontroller

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

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

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

欢迎使用 Swift 和 OC 提供答案。

最佳答案

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

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

其中 pos 是根据屏幕数组和您的选择计算得出的。

关于macos - Cocoa 在特定屏幕上显示 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710289/

相关文章:

macos - OSX 中的问题 "using ls -al --full-time"

php - MySQL 错误 - 无效的日期时间格式 : 1292 Incorrect datetime value: '' for column

objective-c - Mac OSX/iPhone 上的 C 预处理器, '#' key 的用法?

cocoa - NSSplitView subview 大小以编程方式限制为容器 NSSplitView 的大小

cocoa - 如何使用 NSWindowDidExposeNotification

swift - NSTask 在命令中添加额外的单引号

macos - 有没有办法获取 CFStreamError 的字符串描述?

cocoa - NSTreeController 错误 - 此类与键的键值编码不兼容

objective-c - 在所有屏幕上显示窗口

objective-c - 如何在 Mac 操作系统中创建 "No Activate"窗口