【问题标题】:Programmatically open NSWindow in another Desktop (Space)以编程方式在另一个桌面(空间)中打开 NSWindow
【发布时间】:2016-05-29 10:21:18
【问题描述】:

在我的 OSX 项目中,我想:

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

  • 在确定的 Space 中打开 NSWindow,而不仅仅是在当前 Space 中。

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

浏览文档(NSWindowController、NSWindow、NSScreen)我找不到有关多桌面管理的任何内容。

提前致谢!

【问题讨论】:

    标签: objective-c xcode swift macos cocoa


    【解决方案1】:

    您可能认为会有一些 API 用于处理 Spaces,但实际上并没有。您可以使用 CGWindowListCopyWindowInfo 来确定特定窗口所在的空间,但没有简单的方法可以在特定空间上打开特定窗口。

    当然,有 private API 可以在空间之间移动窗口。你是否想在你的应用程序中使用它取决于你的需要——显然你不能在 Mac App Store 应用程序上使用它。

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

    【讨论】:

    • 谢谢马克。我联系了 Apple DTS,他们告诉我:我们的工程师已经审核了您的请求,并得出结论认为,鉴于当前发布的系统配置,没有支持的方法来实现所需的功能。 :(
    • 是的,他们确实需要加强记录/支持 CoreGraphicsServices。我一定会在下一届 WWDC 上告诉他们。
    猜你喜欢
    • 2021-11-08
    • 2010-11-05
    • 2012-02-19
    • 2013-12-13
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多