Для моего случая
У меня был NSTableView
с предметами из-под «Представления списка предметов»,
и OutlineView
похож на это:
- Родитель А
- что-то
- что-то
- что-то
- . , .
- Родитель B
- Список предметов
Родители A и B не важны, но они здесь, чтобы продемонстрировать, что перед «представлением списка элементов» не существует фиксированного числа строк.
Итак, что я сделал, так это то, что использовал
- (void)tableViewSelectionDidChange:(NSNotification *)aNotification
метод в моем делегате NSTableView
и метод
NSTableView *tableView = [aNotification object];
NSInteger clickedRowInTableView = [tableView selectedRow];
чтобы получить новую выбранную строку в моем tableView
.
После этого я получил номер строки «Представление списка элементов» (он получает его динамически, в зависимости от того, расширены ли «Родители» и сколько у них детей), а также развернул «Представление списка элементов» , если он еще не был расширен.
Затем я добавил все числа вместе: clickedRowInTableView
+ rowNrOfItemsListView
+ 1
, 1 для строки «Просмотр списка элементов».
Затем я использовал NSOutlineView
– selectRowIndexes:byExtendingSelection:
(спасибо, Нейт, за указание на это), чтобы установить выбранную строку в OutlineView
.
Надеюсь, это может помочь тем, кто находится в той же ситуации, что и я.