TableViews de múltiplas colunas no MacOS usando o SwiftUI


12

Eu tenho experimentado um pouco com o SWiftUI e parece que não consigo encontrar nenhuma informação sobre como usar o SWiftUI para criar um TableView de várias colunas como no NSTableView. Todos os exemplos que consegui encontrar mostram uma única coluna de dados. A documentação da Apple até especifica que a estrutura da lista SwiftUI é para exibição em coluna única de linhas de dados. Essa é uma estrutura de dados bastante fundamental para aplicativos no MacOS, mas parece que não há menção a ela em nenhum lugar!

Alguém pode lançar alguma luz sobre isto? Presumo que ainda não está pronto, mas ainda assim….


E quanto à troca e redimensionamento de colunas, cabeçalhos, classificação de linhas clicando no botão de classificação nos cabeçalhos, etc. As visualizações de tablaturas do MacOS são muito mais complicadas do que apenas uma lista simples.
Peter

11
Por que essa pergunta foi rebaixada? SwiftUI para macOS é horrível ... todo mundo está fazendo tutoriais para iOS!
Lupurus 2/11/19

Eu acho que no momento ainda é necessário usar NSViewRepresentable. Você tem alguma informação nova?
Lupurus 2/11/19

11
Não, nenhuma informação nova. E você está certo sobre a falta de exemplos para o MacOS - quase inexistente.
Peter

Você descobriu como usar um NSTableViewno SwiftUI?
Lupurus 8/11/19

Respostas:


1

Você pode criar um HStack e, em seguida, ter um divisor entre dois VStacks, onde você colocaria suas diferentes colunas de dados. Seria algo como isto:

List {
 HStack{
   VStack{
    //Column 1 Data
  }
   }
  Divider()
   VStack{
     //Column 2 Data
   }
}

E então repita isso para quantas colunas de dados forem necessárias.


Bem, sim, mas pareceria bastante hackeado. Nenhum cabeçalho de coluna ou troca de coluna, classificação etc. É melhor usar um real por enquanto e espero que algo melhor esteja disponível após a WWDC deste ano. Fiquei mais surpreso com a total falta de menção a ele - muito bem em qualquer lugar, na verdade.
Peter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.