Mehrspaltige Tabellenansichten in MacOS mit SwiftUI

12

Ich habe ein bisschen mit SWiftUI experimentiert und kann anscheinend überhaupt keine Informationen darüber finden, wie man mit SWiftUI eine mehrspaltige TableView wie in NSTableView erstellt. Alle Beispiele, die ich gefunden habe, zeigen eine einzelne Datenspalte. In der Dokumentation von Apple ist sogar angegeben, dass die SwiftUI-Listenstruktur für die einspaltige Anzeige von Datenzeilen vorgesehen ist. Dies ist eine ziemlich grundlegende Datenstruktur für Apps unter MacOS, die jedoch nirgendwo erwähnt wird!

Kann jemand etwas Licht ins Dunkel bringen? Ich nehme an, es ist noch nicht fertig, aber immer noch ...

Peter
quelle
Was ist mit Spaltenaustausch und Größenänderung, Überschriften, Zeilensortierung durch Klicken auf die Sortierschaltfläche in Überschriften usw. MacOS-Tabellenansichten sind weitaus komplizierter als nur eine einfache Liste.
Peter
1
Warum wurde diese Frage abgelehnt? SwiftUI für macOS ist schrecklich ... jeder macht Tutorials für iOS!
Lupurus
Ich denke im Moment ist es noch notwendig zu verwenden NSViewRepresentable. Haben Sie neue Informationen?
Lupurus
1
Nein, keine neuen Informationen. Und Sie haben Recht mit dem Mangel an Beispielen für MacOS - fast nicht vorhanden.
Peter
Haben Sie herausgefunden, wie man ein NSTableViewin SwiftUI verwendet?
Lupurus

Antworten:

1

Sie könnten einen HStack erstellen und dann einen Teiler zwischen zwei VStacks haben, in den Sie Ihre verschiedenen Datenspalten einfügen würden. Es würde ungefähr so ​​aussehen:

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

Und wiederholen Sie dies einfach für alle Datenspalten, die benötigt werden.

Ben O.
quelle
Nun ja, aber es würde ziemlich gehackt aussehen und sich auch so anfühlen. Keine Spaltenüberschriften oder Spaltenaustausch, Sortierung usw. Verwenden Sie vorerst lieber eine echte und hoffen Sie, dass nach dem WWDC in diesem Jahr etwas Besseres verfügbar ist. Ich war mehr überrascht über das völlige Fehlen einer Erwähnung - eigentlich ziemlich gut überall.
Peter