[英]NSButton value as default in 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'”
如何解決此錯誤? 謝謝。
因為state
不是布爾值。 在Objective-C中,它是整數。 在Swift中,這是一個rawValue
是整數的結構 。 此外,不要在設置狀態representedObject.didSet
。 在viewDidLoad
:
override func viewDidLoad() {
super.viewDidLoad()
// When your app launches for the very first time on the user computer, set it to On
UserDefaults.standard.register(defaults: [
"Check1Status": NSControl.StateValue.on.rawValue
])
let state = NSControl.StateValue(UserDefaults.standard.integer(forKey:"Check1status"))
check1.state = state
}
@IBAction func check1(_ sender: NSButton) {
// Swift performs do some background magic if you type check1.state
// Adding rawValue make it clear that you are writing an integer to the UserDefaults
UserDefaults.standard.set(check1.state.rawValue, forKey:"Check1status")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.