Я написал приложение таймера, которое передает speechTime из IBAction и ведет обратный отсчет до 0. Имеется пять различных speechTimes и кнопка переключения, которая останавливает обратный отсчет времени речи.Я хотел бы иметь возможность отключить кнопки, которые не являются нажатыми IBAction, в то время как таймер обратного отсчета (для предотвращения сброса речи).
В настоящее время у меня есть несколько [speechButton setEnable: NO] и [... setEnable: YES] вызовы, и все они работают так, как я ожидаю;но я подозреваю, что это плохое управление памятью и делает для действительно неприятно выглядящий код.Я хотел бы реализовать что-то вроде NSSet всех кнопок и включить / отключить их, используя только один метод, чтобы в итоге я получил [кнопки отключить] / [кнопки включить].
Я играл с чем-то вроде этого:
TimerViewController.h
@implement TimerViewController{
NSButton *buttonA, *buttonB, *buttonC;
}
@property (retain, readonly) NSSet *hijackableButtons;
-(void)disableButtons
@end
TimerViewController.m
...
@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];
}
Но это не работает,Любые предложения будут оценены!