Сбои NSTableView при изменении данных с выбранной строкой - PullRequest
2 голосов
/ 08 февраля 2012

В моем приложении какао у меня есть 2 NSTableViews. AppDelegate является источником данных для них обоих. Я хочу изменить данные второго TableView в зависимости от выбранной строки первого TableView. Для этого я использую NSDictionary. Я добавляю массив для каждой записи в массиве данных таблицы 1.

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView{

    if([table1 selectedRow] != -1 && [[aTableView identifier] isEqualToString:@"table2"]){

    return [[dict objectForKey:[arrForTable1 objectAtIndex:[table1 selectedRow]]] count];
    }

if([[aTableView identifier] isEqualToString:@"table1"]) return [arrForTable1 count];

return 0;
}


- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

    if([table1 selectedRow] != -1 && [[aTableView identifier] isEqualToString:@"table2"]){

    return [[dict objectForKey:[arrForTable1 objectAtIndex:[table1 selectedRow]]] objectAtIndex:rowIndex];
}

if([[aTableView identifier] isEqualToString:@"table1"]){

    return [arrForTable1 objectAtIndex:rowIndex];
}

return nil;
}

Этот код дает сбой, когда в таблице 2 выбрана строка и после этого происходит переключение в таблице таблицы на строку с пустым массивом.

Как я могу это исправить? Я попытался [table2 deselectAll: self] в - selectionShouldChangeInTableView: метод, но он не работает. Это работает, чтобы вызвать deselectAll: метод с кнопкой, и это было нормально.

1 Ответ

0 голосов
/ 09 февраля 2012

Звучит так, как если бы ваш выбор в таблице1 изменился.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...