Pergunta

Eu tenho um NSOutlineView vinculado a um NSTreeController (se isso faz uma diferença), e eu gostaria de expandir cada nó na minha -awakeFromNib().

Eu também gostaria de selecionar programaticamente o primeiro filho do primeiro nó ao mesmo tempo. Esses tipos de coisas são simples, com vistas de tabela, mas os contornos não estão cooperando comigo em tudo.

Obrigado,

Rico

Foi útil?

Solução

Eu gostaria de expandir cada nó na minha -awakeFromNib ().

A partir do Mac OS X 10.5, [outlineView expandItem:nil expandChildren:YES].

Nas versões anteriores do Mac OS X, você vai precisar para fazer uma iteração de 0 até o número de linhas, ficando o item para cada linha usando [outlineView itemAtRow:row] e armazenar esses itens em uma matriz, em seguida, iterar a matriz e passar cada item com o método expandItem:expandChildren:. (Você não pode misturar os dois loops porque a expansão de um item e todos os seus descendentes vão mudar os índices de linha de seus irmãos subseqüentes; portanto, você deve coletar todos os itens de nível superior em primeiro lugar, em seguida, expanda-los uma vez que você tem todos eles. )

Eu também gostaria de selecionar programaticamente o primeiro filho do primeiro nó ao mesmo tempo.

Imediatamente após a acima, vai ser a linha 1.

Uma vista de destaques é um tipo de exibição de tabela, de modo que você vai usar um dos métodos de NSTableView:. [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]

Outras dicas

Se você estiver carregando a partir de uma fonte de dados,

dispatch_async(dispatch_get_main_queue(), ^{
  [self.outlineView expandItem:root expandChildren:YES];
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top