Мое текущее решение состоит в том, чтобы поддерживать свойство, которое обновляется при переключении флажка, и получать доступ к этому свойству вместо непосредственного чтения состояния флажка.
Приветствуется что-то более элегантное: это громоздко; тем более, если вы хотите сделать свойство доступным только для чтения или правильно обрабатывать установку его значения внутри программы.
class myViewController: NSViewController {
@IBOutlet private weak var myCheckbox: NSButtonCell!
public var myCheckboxState: Bool! // This can be read from any thread.
@IBAction func onMyCheckboxAction(_ sender: NSButtonCell) {
myCheckboxState = (myCheckbox.state == NSOnState)
}
override func viewDidLoad() {
super.viewDidLoad()
...
myCheckboxState = (myCheckbox.state == NSOnState)
...
}
...
}