Ajustar automaticamente a altura de um NSTableView
Eu fiz essa pergunta uma vez antes, mas não estou muito satisfeito com a solução.
Ajustar automaticamente o tamanho do NSTableView
Eu quero mostrar umNSTableView
em umNSPopover
ou em umNSWindow
.
Agora, o tamanho da janela deve se ajustar à visão de tabela.
Assim como o Xcode:
Isso é bastante simples com o Auto Layout, você pode fixar a visão interna à super visão.
Meu problema é que não consigo descobrir a altura ideal da visualização da tabela. O código a seguir enumera todas as linhas disponíveis, mas não retorna o valor correto, porque a exibição de tabela possui outros elementos, como separadores e o cabeçalho da tabela.
- (CGFloat)heightOfAllRows:(NSTableView *)tableView {
CGFloat __block height;
[tableView enumerateAvailableRowViewsUsingBlock:^(NSTableRowView *rowView, NSInteger row) {
// tried it with this one
height += rowView.frame.size.height;
// and this one
// height += [self tableView:nil heightOfRow:row];
}];
return height;
}
1. PerguntaComo posso consertar isso? Como posso calcular corretamente a altura necessária da exibição de tabela.
2. PerguntaOnde devo executar este código?
Eu não quero implementar isso em um controlador, porque é definitivamente algo que a visão de tabela deve manipular.
E eu nem encontrei nenhum método delegado útil.
Então eu imaginei que seria melhor se você pudesse subclasseNSTableView
.
Então, minha pergunta 2, onde implementá-lo?
Definitivamente vale uma recompensa