Me encontré con que el nuevo componente de tabla de SwiftUI 3.0 es como un juguete, que puede ser utilizado fácilmente, pero es difícil para ampliar más funciones.
TableRow y TableColumn heredar del objeto de valor. ¿Cómo puedo obtener el punto de vista de una fila? Quiero establecer diferentes ContextMenu para cada fila. Además, quiero establecer el ContextMenu para el encabezado de la columna.
Cómo ponerlo en práctica sobre la base de un componente de Tabla? No quiero utilizar la Lista de componentes.
struct Person: Identifiable {
let givenName: String
let familyName: String
let id = UUID()
}
@State private var people = [
Person(givenName: "Juan", familyName: "Chavez"),
Person(givenName: "Mei", familyName: "Chen"),
Person(givenName: "Tom", familyName: "Clark"),
Person(givenName: "Gita", familyName: "Kumar"),
]
@State private var sortOrder = [KeyPathComparator(\Person.givenName)]
var body: some View {
Table(people, sortOrder: $sortOrder) {
TableColumn("Given Name", value: \.givenName)
TableColumn("Family Name", value: \.familyName)
}
.onChange(of: sortOrder) {
people.sort(using: $0)
}
}