Vistas de tabla de múltiples columnas en MacOS usando SwiftUI

12

He estado experimentando un poco con SWiftUI y parece que no puedo encontrar ninguna información sobre cómo usar SWiftUI para crear una TableView de columnas múltiples como en NSTableView. Todos los ejemplos que he logrado encontrar muestran una sola columna de datos. La documentación de Apple incluso especifica que la estructura de la lista SwiftUI es para la visualización de una sola columna de filas de datos. Esta es una estructura de datos bastante fundamental para aplicaciones en MacOS, ¡pero parece que no hay ninguna mención de ella en ningún lado!

¿Alguien puede arrojar algo de luz sobre esto? Supongo que todavía no está listo, pero aún así ...

Peter
fuente
¿Qué pasa con el intercambio y cambio de tamaño de columnas, encabezados, clasificación de filas haciendo clic en el botón de clasificación en los encabezados, etc. Las vistas de tabla de MacOS son mucho más complicadas que una simple lista.
Peter
1
¿Por qué se rechazó esta pregunta? SwiftUI para macOS es horrible ... ¡todos están haciendo tutoriales para iOS!
Lupurus el
Creo que en este momento todavía es necesario usar NSViewRepresentable. ¿Tienes alguna información nueva?
Lupurus
1
No, no hay nueva información. Y tiene razón sobre la falta de ejemplos para MacOS, casi inexistente.
Peter
¿Descubriste cómo usar un NSTableViewen SwiftUI?
Lupurus

Respuestas:

1

Podría crear una HStack y luego tener un divisor entre dos VStacks donde colocaría sus diferentes columnas de datos. Se vería algo así:

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

Y luego simplemente repita esto para la cantidad de columnas de datos que se necesitan.

Ben O
fuente
Bueno, sí, pero se vería y sentiría bastante hackeado. No hay encabezados de columna o intercambio de columnas, clasificación, etc. Es mejor usar uno real por el momento y esperar que haya algo mejor disponible después de WWDC este año. Me sorprendió más la falta total de siquiera mencionarlo, bastante bien en cualquier lugar.
Peter