Vues multi-colonnes sous MacOS avec SwiftUI


12

J'ai expérimenté un peu avec SWiftUI et je n'arrive pas à trouver d'informations sur la façon d'utiliser SWiftUI pour créer une TableView multi-colonnes comme dans NSTableView. Tous les exemples que j'ai réussi à trouver montrent une seule colonne de données. La documentation d'Apple spécifie même que la structure de la liste SwiftUI est destinée à l'affichage sur une seule colonne de lignes de données. Il s'agit d'une structure de données assez fondamentale pour les applications sur MacOS, mais il semble n'y avoir aucune mention nulle part!

Quelqu'un peut-il nous éclairer à ce sujet? Je suppose que ce n'est pas encore prêt, mais quand même….


Qu'en est-il de l'échange et du redimensionnement des colonnes, des en-têtes, du tri des lignes en cliquant sur le bouton de tri dans les en-têtes, etc. Les vues de table MacOS sont bien plus compliquées qu'une simple liste.
Peter

1
Pourquoi cette question a-t-elle été rejetée? SwiftUI pour macOS est horrible ... tout le monde fait des tutoriels pour iOS!
Lupurus

Je pense qu'en ce moment il faut encore l'utiliser NSViewRepresentable. Avez-vous de nouvelles informations?
Lupurus

1
Non, pas de nouvelles informations. Et vous avez raison sur le manque d'exemples pour MacOS - presque inexistant.
Peter

Avez-vous découvert comment utiliser un NSTableViewdans SwiftUI?
Lupurus

Réponses:


1

Vous pouvez créer un HStack puis avoir un diviseur entre deux VStacks où vous mettriez vos différentes colonnes de données. Cela ressemblerait à quelque chose comme ceci:

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

Et puis, répétez cela pour le nombre de colonnes de données nécessaires.


Eh bien oui, mais ça aurait l'air et se sentirait assez piraté ensemble. Aucun en-tête de colonne ou échange de colonne, tri, etc. Mieux vaut en utiliser un réel pour le moment et espérons que quelque chose de mieux sera disponible après la WWDC cette année. J'ai été plus surpris de l'absence totale de mention, même à peu près n'importe où en fait.
Peter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.