Я пытаюсь решить простую проблему расширения только корневого элемента в моем NSOutlineView, но безуспешно. Я могу развернуть все элементы и выбранные элементы, но я, похоже, не могу понять, как точно определить, как развернуть только корневой узел. Схема показывает дерево папок, и я хочу показать папки, доступные только в корневой папке, но я не хочу расширять дочерние папки.
В настоящее время я пытаюсь установить selectionIndexPath моего NSTreeController, а затем расширить выбор в схеме:
NSIndexPath *indexPath;
NSUInteger section = [indexPath indexAtPosition:0];
NSIndexPath *ip = [NSIndexPath indexPathWithIndex:section];
[outlineView collapseItem:nil collapseChildren:YES];
[self.treeController setSelectionIndexPath:ip];
[outlineView expandItem:[self.treeController selectionIndexPath]];
Это не работает. Предложения о том, как я могу правильно решить эту проблему, очень ценятся.
Привет, Тронд
Решение. Следующая комбинация того, что у меня уже было, и предложения @PaulPatterson отлично работает:
[outlineView collapseItem:nil collapseChildren:YES];
NSIndexPath *indexPath;
NSUInteger section = [indexPath indexAtPosition:0];
NSIndexPath *ip = [NSIndexPath indexPathWithIndex:section];
[outlineView collapseItem:nil collapseChildren:YES];
[self.treeController setSelectionIndexPath:ip];
id node = [[self.treeController selectedNodes] firstObject];
[outlineView expandItem:node];