Отключение определенных ячеек в NSTableView

У меня есть табличное представление с 4 столбцами. Первый содержит текст, а остальные 3 - флажки.
Мне нужно отключить 2 из 3 флажков в одной строке. Я сохраняю номер строки в переменной NSInteger.

Я реализовал:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 

Где я проверяю идентификатор столбца, чтобы узнать, нахожусь ли я в правом столбце, как только я знаю, что проверяю правильность строки и устанавливаю ячейку для отключения. Код следующий:

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex 
{    
    if(([[aTableColumn identifier] isEqualToString:@"column1"]) || ([[aTableColumn identifier] isEqualToString:@"column2"]))
    {   
        if (rowIndex == myindex)    // myindex holds the row index where I need to disable the cells 
        {
            [aCell setEnabled:NO];
        }
    }  
    else
    {
        return;
    }
}

Произошло странное. Colum1 и Colum2 для моей конкретной строки отключены, пока я не нажму другую строку, затем все строки отключат эти два столбца.

Как отключить эти две очень специфические ячейки (только в строке myindex и только в column1 и column2 )?

это Mac OS X, а не iOS.
Спасибо

5
задан Mr Aleph 30 September 2011 в 17:38
поделиться