使用未解析的标识符:kCGWindowImageDefault(和其他 Core Graphics 常量)

Use of unresolved identifier: kCGWindowImageDefault (and other Core Graphics constants)

我是 Swift 开发的新手。我正在 Swift 中为 MacOS(不是 iOS)编写一个应用程序,并试图改编一些来自 this Apple sample Objective-C project 的代码以用于我的程序。

我遇到的问题是某些 Apple 定义的常量,例如 kCGWindowImageDefault and kCGWindowListOptionAll 导致 XCode 报告编译时错误 "Use of unresolved identifier [identifier]"。

有些令人惊讶的是,如果我右键单击 kCGWidowImageDefault 和 select "Jump to Definition",XCode 跳转到该常量的定义(在 CoreGraphics > CGWindow.h > CGWindowImageOption 中)——因此 XCode 似乎知道该常量是什么。

以下是我的 ViewController.swift 文件的相关片段:

import Cocoa
import CoreGraphics

class ViewController: NSViewController {

...

    func myFunction() {

        // *** XCode reports the error on kCGWindowImageDefault on this line:
        let imageOptions : CGWindowImageOption = kCGWindowImageDefault 

        ...
    }
}

Apple 文档(如上链接)没有说明需要import编辑什么才能使用这些常量。

XCode 似乎成功地识别了我正在使用的类型,例如 CGWindowImageOption - 它只是无法识别的常量.

我需要做什么才能在我的 Swift MacOS 程序中成功使用 kCGWindowImageDefault 和类似常量?

kCGWindowImageDefault 仅适用于 Objective-C,不适用于 Swift。在Swift中,CGWindowImageOption是一个OptionSet。对于默认设置,您只需使用一个空选项集:

let imageOptions : CGWindowImageOption = []

对于 CGWindowListOption 你可以这样做:

let listOptions: CGWindowListOption = .optionAll

请务必查看这些枚举的 Swift 参考文档。您不能使用 Objective-C 值。