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

Posted

技术标签:

【中文标题】使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是啥?【英文标题】:What is the standard way to create a checkbox programmatically in Swift 4.0 using Cocoa?使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是什么? 【发布时间】:2020-07-17 02:54:06 【问题描述】:

有人要求我更新现有的 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 中工作。

谁能告诉我在这种情况下我应该如何以编程方式创建一个复选框?

【问题讨论】:

【参考方案1】:

你可以使用:

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

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

button.setButtonType(.switch)

【讨论】:

以上是关于使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在表格视图中以编程方式选择一行? (斯威夫特 4.0)

在 COCOA 中以编程方式获取“GeneratedUID”

Cocoa - 在情节提要中以编程方式呈现 NSViewController LIKE “显示选项”(不是模态)

使用 Swift 在 NSTextField 中垂直对齐文本

使用Swift在NSTextField中垂直对齐文本

在 Swift 中以编程方式使用 segues 传递信息