我是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'”
如何修复此错误?感谢。
答案 0 :(得分:1)
因为state
不是布尔值。在Objective-C中,它是一个整数。在Swift中,它是struct,其rawValue
是一个整数。另外,请勿在{{1}}中设置状态。在representedObject.didSet
中执行:
viewDidLoad