我被要求更新现有的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)