我有一個OS X應用程序與兩個複選框(NSButton)。如果第一個(主)未選中,則禁用並取消選中第二個。我可以在發送操作前獲取一個複選框以在視覺上更改其狀態?
下面是該功能的代碼,
@IBAction func peopleCheckboxAction(sender: AnyObject) {
if(self.peopleCheckbox.state == NSOffState){
self.peopleCommentsCheckbox.enabled = false
self.peopleCommentsCheckbox.state = NSOffState
}else{
self.peopleCommentsCheckbox.enabled = true}
}
但這裏的東西:第一個複選框的狀態更改之前的代碼被執行,並創建一個兩步動作,感覺就像第一盒子沒有反應,或者用戶可能點擊了錯誤的按鈕,因爲第二個控件先改變了。這只是一個節拍,但我想解決它。
是否有一種簡單的方法來扭轉這兩件事情的執行方式,或者確保它們幾乎同時發生?
謝謝,我認爲這可能工作,但這裏有兩個問題。首先,似乎存在同樣的時間問題。其次,我實際上仍然需要關閉複選框以及禁用它。如果我只是將啓用的屬性綁定到它,那麼它可以被禁用,但commentCheckbox.state仍然是NSOnState。 – 2015-03-19 02:08:06