簡體   English   中英

swift中NSButton的默認值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM