以编程方式在另一个桌面(空间)中打开NSWindow

时间:2016-02-17 15:45:42

标签: objective-c xcode swift macos cocoa

在我的OSX项目中,我想:

  • 识别NSWindow所在的桌面(曝光空间之一);

  • 在一个确定的空间中打开一个NSWindow,而不仅仅是在当前的空间。

有没有办法完成这些简单的任务?

探索文档(NSWindowController,NSWindow,NSScreen)我找不到任何关于多桌面管理的内容。

提前致谢!

1 个答案:

答案 0 :(得分:5)

您认为使用Spaces会有一些API,但实际上并没有。您可以使用 CGWindowListCopyWindowInfo 来确定特定窗口所在的空间,但是在特定空间上打开特定窗口并不容易。

当然,有私有 API可以在空格之间移动窗口。是否要在应用程序中使用它取决于您的需求 - 显然,您无法在Mac App Store应用程序中使用它。

找到了我正在寻找的反向工程头的副本副本: https://gist.github.com/rjw57/5495406