私はIBActionからspeechTimeを渡し、0にカウントするタイマーアプリケーションを作成しました。5つの異なるspeechTimesと、音声時間カウントダウンを停止するトグルボタンがあります。タイマーがカウントダウンしている間にIBActionが押されていないボタンを無効にすることができます(speechTimeのリセットを防ぐため)。目的C - NSSetを使用してsetEnabled:NOをNSButtonのセットに使用できますか?
私は現在、いくつかの[speechButton setEnable:NO]と[... setEnable:YES]コールを持っています。私はそれが貧しいメモリ管理だと思うとのために実際に厄介な探しているコードを作る。私はすべてのボタンのNSSetのようなものを実装したいと思いますし、[button disable]/[buttons enable]で終わるように1つのメソッドだけを有効/無効にします。
TimerViewController.h
...
@synthesize hijackableButtons;
-(void)init{
//blah blah blah
hijackableButtons = [NSSet setWithObjects:*buttonA,*buttonB,*buttonC,nil];
}
//...
-(void)disableButtons{
for (id buttons in hijackableButtons){
if (buttons isKindOfClass:[NSButton class]){
[buttons setEnabled:NO];
}
は、しかし、これは動作しません
@implement TimerViewController{
NSButton *buttonA, *buttonB, *buttonC;
}
@property (retain, readonly) NSSet *hijackableButtons;
-(void)disableButtons
@end
TimerViewController.m:
は、私はこのようなもので遊ん。任意の提案をいただければ幸いです!
すごくいいですね。 –
これは本当に良い提案です!残念ながら、iOS4はこれを実装しましたが、明らかにMac OS X開発用にまだ実装されていません。 http://stackoverflow.com/questions/4820804/looking-for-a-way-to-use-an-nsarray-as-an-outlet-for-a-bunch-of-buttons/4820925#4820925 – cecilgol