【问题标题】:How to get Window reference (CGWindow, NSWindow or WindowRef) from CGWindowID in Swift?如何在 Swift 中从 CGWindowID 获取窗口引用(CGWindow、NSWindow 或 WindowRef)?
【发布时间】:2016-08-06 06:19:21
【问题描述】:

如何在 XCode 7.3 Mac Playground 上的 Swift 中从 CGWindowID 获取窗口引用(CGWindow、NSWindow 或 WindowRef)?

我引用了 Apple 的文档 - Window Manager Reference 和示例代码 SonofGrab,但我在 obj-C 和 Swift 中都没有找到答案。

我该怎么做?

【问题讨论】:

    标签: swift macos core-graphics nswindow window-managers


    【解决方案1】:

    这应该适用于来自 CGWindowID 的 NSWindow

    NSWindow * ns_window;
    ns_window = [NSApp windowWithWindowNumber: windowNumber];
    

    从 NSWindow 获取 CGWindowID 使用

    CGWindowID window_id = (CGWindowID)[ns_window windowNumber];
    

    【讨论】:

    • 您确定这是您获得CGWindowId 的方式吗? windowNumber 的文档说:“请注意,这与窗口服务器分配的全局窗口编号不同”
    • 另外,请注意[NSApp windowWithWindowNumber:] 仅适用于您的应用程序拥有的窗口。
    • 经过一些测试,windowNumber 似乎是正确的!
    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多