Хороший способ установить состояния кнопок в NSTableView - использовать NSArrayController и привязать его к столбцам NSTableView:
- Привязать столбец, содержащий кнопки, к NSArrayController (см. этот пример )
- Под Включено
- Установите
Controller Key
на ограмму объектов - Установите
Model Key Path
до состояния кнопки NSArrayController.Например, давайте назовем это enabled .
Теперь в классе, где у вас есть NSArrayController и делегат NSTableView, сделайте что-то подобное после нажатияфлажок:
- (void)updateArrayControllerWithButtonState: (BOOL)isEnabled
{
// theTable is the NSTableView instance variable
NSInteger row = [theTable clickedRow];
// Get the array of values that populates the table
NSMutableDictionary *arrayValues = [[theArrayController arrangedObjects] objectAtIndex:row];
// Actually change the NSArrayController's value to match
[arrayValues setObject:[NSNumber numberWithBool:[model isEnabled]] forKey:@"enabled"];
[theTable reloadData];
}
Если вы правильно настроили привязки для NSArrayController & NSTableView, эта функция должна обновить текущее состояние кнопки, чтобы оно соответствовало состоянию NSArrayController.
Этот кодне проверен, но должен пролить свет на общую идею.