NSOutlineView - Авторазверните все узлы

Вы хотите либо использовать .Files.Get для загрузки файлов yaml, либо взять содержимое yaml, имеющееся в файлах yaml, и записать его в values.yaml, чтобы вы могли вставить его непосредственно в конфигурационную карту с помощью toYaml.

Если значения просто статические, и вам не нужно, чтобы пользователь переопределял их, тогда .Files.Get лучше для вас. Если вы хотите легко перезаписывать содержимое в файлах yaml во время установки, просто представьте их в файле values.yaml.

26
задан Andriy 18 May 2016 в 07:05
поделиться

2 ответа

Я хотел бы расширить каждый узел в my -awakeFromNib ().

Начиная с Mac OS X 10.5, [outlineView expandItem:nil expandChildren:YES].

В предыдущих версиях Mac OS X вам нужно было выполнить итерацию от 0 до количества строк, получить элемент для каждой строки с помощью [outlineView itemAtRow:row] и сохранить эти элементы в массиве, а затем выполнить итерацию массива и передать каждый элемент в методе expandItem:expandChildren:. (Вы не можете смешать два цикла, потому что расширение элемента и всех его потомков изменит индексы строк его последующих братьев и сестер; следовательно, сначала вы должны собрать все элементы верхнего уровня, а затем развернуть их, как только у вас будут все. )

Я также хотел бы программно выбрать первого потомка первого узла одновременно.

Сразу после вышесказанного будет строка 1.

Контурное представление является разновидностью табличного представления, поэтому вы будете использовать один из методов NSTableView: [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO].

65
ответ дан Peter Hosey 28 November 2019 в 06:37
поделиться

Если вы загружаете из источника данных,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
-2
ответ дан Kyle Browning 28 November 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: