【发布时间】:2015-05-19 21:48:11
【问题描述】:
我正在尝试使用 Swift 从核心图形 API 获取 OSX 上的窗口列表(以便稍后捕获它们的图像)。经过一番研究,我发现 CGWindowListCopyWindowInfo Objective-C API 调用具有以下签名:
CFArrayRef CGWindowListCopyWindowInfo(
CGWindowListOption option,
CGWindowID relativeToWindow
);
参数
option:描述哪些窗口字典的选项 返回。典型选项让您返回所有窗口的字典或 对于在指定窗口上方或下方的窗口 相对窗口参数。有关详细信息,请参阅窗口列表 选项常数。
relativeToWindow:用作窗口的 ID 确定要使用哪些其他窗口字典时的参考点 返回。对于不需要参考窗口的选项,这 参数可以是kCGNullWindowID。
在我的 swift 应用程序中,我尝试像这样使用它:
import Cocoa
import CoreFoundation
let option: CGWindowListOption = kCGWindowListOptionOnScreenOnly
let relativeToWindow: CGWindowID = kCGNullWindowID
let info = CGWindowListCopyWindowInfo(option, relativeToWindow)
但是 XCode(游乐场)告诉我
- 它不能使用 int 作为 CGWindowListOption (kCGWindowListOptionOnScreenOnly == 0)
- kCGNullWindowID 是一个未解析的标识符
我在这里做错了什么?
【问题讨论】:
-
请注意,这不是一个 Objective-C API。这是一个 C API。 (这并没有太大变化;但它会改变您查找信息的位置。)
标签: macos swift core-graphics