對於這樣的情況,我強烈建議使用Cocoa Bindings;這實際上是使用綁定的更簡單方法之一。
使用綁定,可以爲您處理用戶界面同步。這意味着你並不需要查詢單選按鈕的狀態;您只需查詢該按鈕綁定的屬性即可。
而不是實施操作方法,你只需要屬性。例如,- (BOOL) radio1;
,- (void) setRadio1:(BOOL) flag;
,- (BOOL) radio2;
和- (void) setRadio2:(BOOL) flag;
(但給這些方法更好的名稱比)。您可以在更高版本的Objective-C中使用@property
。將BOOL
字段放在您的班級中。
當您編輯您的NIB/XIB文件時,可以將屬性分配給單選按鈕。
通過鍵值編碼的規則,self.radio1
是隱含意味着方法radio1
和setRadio1
都被調用的路徑。如果您將它們重命名爲其他內容,請相應地調整路徑名稱。
當編輯您的NIB/XIB,依次選擇您的NSMatrix的每個鈕釦電池,並設置適當的結合:
- 設置的值綁定到「文件的所有者」(如果這其中屬性實現) 。
- 使用相應屬性的鍵路徑(如果有上述示例方法,則使用
self.radio1
或self.radio2
)。
NSMatrix已經設置爲一次只允許一個值,所以屬性值也會受到類似的限制。
感謝您的回答。這就是我所做的。但是布爾沒有更新。我收到單選按鈕 – testpresta