NSButton值在swift中是默认值

时间:2018-04-12 14:45:21

标签: swift xcode nsbutton

我是swift的新手,使用 Xcode 尝试编写一个小清单应用。在我选中/取消选中复选框并退出应用后,下次重新打开时状态就会消失。我想知道如何将 NSButton 的当前状态保存为默认值,以便下次打开应用程序时,当我关闭它时它将显示相同的状态。我尝试过以下练习:

设置默认值:

@IBAction func Check1(_ sender: NSButton) {
        UserDefaults.standard.set(Check1.state, forKey:"Check1status")
    }

读取默认值:

override var representedObject: Any? {
    didSet {
        Check1.state = UserDefaults.standard.bool(forKey:"Check1status")
    }
}

但是我收到错误消息:“无法指定'Bool'类型的值来键入'NSControl.StateValue'”

如何修复此错误?感谢。

1 个答案:

答案 0 :(得分:1)

因为state不是布尔值。在Objective-C中,它是一个整数。在Swift中,它是struct,其rawValue是一个整数。另外,请勿在{{1​​}}中设置状态。在representedObject.didSet中执行:

viewDidLoad
相关问题