このような場合には、Cocoa バインディングを使用することを強くお勧めします。これは、バインディングを使用する最も簡単な方法の 1 つです。
バインディングを使用すると、ユーザー インターフェイスの同期が自動的に処理されます。これは、ラジオ ボタンの状態を実際に問い合わせる必要がないことを意味します。ボタンがバインドされているプロパティを照会するだけです。
アクション メソッドを実装する代わりに、必要なのはプロパティだけです。たとえば、- (BOOL) radio1;
、- (void) setRadio1:(BOOL) flag;
、- (BOOL) radio2;
および- (void) setRadio2:(BOOL) flag;
(ただし、メソッドにはそれよりも適切な名前を付けます)。@property
これらは、Objective-C の以降のバージョンで使用できます。それぞれBOOL
のクラスにフィールドを配置します。
NIB/XIB ファイルを編集しているときに、プロパティをラジオ ボタンに割り当てることができます。
キー値コーディングの規則により、はメソッドとの両方が呼び出されるself.radio1
ことを暗黙的に意味するパスです。それらの名前を別の名前に変更した場合は、それに応じてパス名を調整してください。radio1
setRadio1
NIB/XIB を編集するときは、NSMatrix の各ボタン セルを順番に選択し、適切なバインドを設定します。
- 値バインディングを「ファイルの所有者」に設定します (プロパティが実装されている場合)。
- 適切なプロパティのキー パスを使用します (
self.radio1
またはself.radio2
、上記の例のメソッドがある場合)。
NSMatrix は、一度に 1 つの値のみを許可するように既に設定されているため、プロパティ値も同様に制限されます。