Visualizzazioni di colonne multi colonna in MacOS utilizzando SwiftUI


12

Ho sperimentato un po 'con SWiftUI e non riesco a trovare alcuna informazione su come utilizzare SWiftUI per creare un TableView multi colonna come in NSTableView. Tutti gli esempi che sono riuscito a trovare mostrano una singola colonna di dati. La documentazione di Apple specifica anche che la struttura dell'elenco SwiftUI è per la visualizzazione a colonna singola di righe di dati. Questa è una struttura di dati piuttosto fondamentale per le app su MacOS, ma sembra che non ci sia menzione zero da nessuna parte!

Qualcuno può fare luce su questo? Presumo che non sia ancora pronto ma ancora ...


Che dire dello scambio e del ridimensionamento delle colonne, delle intestazioni, dell'ordinamento delle righe facendo clic sul pulsante di ordinamento nelle intestazioni, ecc. Le visualizzazioni di tabelle di MacOS sono molto più complicate di un semplice elenco.
Peter,

1
Perché questa domanda è stata sottoposta a downgrade? SwiftUI per macOS è orribile ... tutti fanno tutorial per iOS!
Lupurus,

Penso che al momento sia ancora necessario usarlo NSViewRepresentable. Hai nuove informazioni?
Lupurus,

1
No, nessuna nuova informazione. E hai ragione sulla mancanza di esempi per MacOS - quasi inesistenti.
Peter,

Hai scoperto come utilizzare a NSTableViewin SwiftUI?
Lupurus,

Risposte:


1

È possibile creare un HStack e quindi avere un divisore tra due VStack in cui inserire le diverse colonne di dati. Sarebbe simile a questo:

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

E poi ripeti questo per quanto siano necessarie molte colonne di dati.


Bene sì, ma sembrerebbe e si sentirà piuttosto hackerato insieme. Nessuna intestazione di colonna o scambio di colonne, ordinamento, ecc. Meglio usarne uno reale per il momento e sperare che qualcosa di meglio sia disponibile dopo il WWDC quest'anno. Sono stato più sorpreso dalla totale mancanza anche di menzionarlo, praticamente ovunque.
Peter
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.