2014-02-11 4 views
0

У меня есть поиск и не найти никакой информации, поэтому я хотел бы помочь здесь. Я новичок в Xcode и объективе c. У меня есть 10 NSButtons, установленных в Interface Builder для Push On Push Off. Я пытаюсь понять, как при нажатии и подсвечивании одной из кнопок, как я не освещаю остальные девять. Я использую Java, в java вы можете просто сделать оператор if, чтобы отключить подсветку кнопок, которые не были нажаты. В IB я не вижу, как отправить сообщение другим кнопкам, потому что я не знаю их «имен» или адресов. Не могли бы вы помочь мне понять это, объяснить или отправить ссылку или видео. Спасибо.Objective-C NSButton Toggle

ответ

1

Это то, что я использовал в прошлом.

Создать NSArray со всеми кнопками в нем, что-то вроде:

NSArray* buttons = @[button1, button2, button3, button4]; 

Затем создайте метод, как это.

- (void) toggleButtons: (id) sender { 
    for (Button *item in buttons) { 
     if (item == sender) { 
      item.selected = !item.selected; 
     } else { 
      item.button.selected = NO; 
     } 
    } 
} 

Позовите его от каждого из кнопок обработчиков:

- (IBAction) handleButton1:(id) sender { 
    [self toggleButtons:sender]; 
    <...rest of your code...> 
}