使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是什么?

What is the standard way to create a checkbox programmatically in Swift 4.0 using Cocoa?

我被要求更新现有的 macOS 程序,并获得了一个用 Swift 4.0 编写的 Xcode 项目。该程序使用 Cocoa 以编程方式生成界面。

我以前没有用过Swift(或Xcode),也不熟悉Cocoa,所以我想边走边学,但我是可以使用以下代码将按钮添加到界面:

public lazy var phaseInvertButton: NSButton = {
    let button = NSButton()
    self.addSubview(button)
    return button
}()

但是,当我尝试使用相同的代码和额外的一行添加复选框时, button.setButtonType(NSSwitchButton),我得到一个错误:

'NSSwitchButton' is unavailable in Swift.

我也试过用 public lazy var phaseInvertButton: NSSwitchButton,但得到了同样的错误。根据 Cocoa 文档,NSSwitchButton 是 NSButton 的子类型,但我似乎无法在 Swift.

中使用它

任何人都可以告诉我如何在这种情况下以编程方式创建复选框吗?

您可以使用:

let button = NSButton(checkboxWithTitle:"Title" target:nil action:nil)

如果你想坚持设置 NSButton 的按钮类型,你想要的类型是 .switch:

button.setButtonType(.switch)