Ho scoperto che il nuovo componente della tabella di SwiftUI 3.0 è come un giocattolo, che può essere facilmente utilizzato, ma è difficile per espandere le funzioni.
TableRow e TableColumn ereditate dal valore dell'oggetto. Come posso ottenere la visualizzazione di una riga? Voglio impostare un ContextMenu per ogni riga. Inoltre, voglio impostare il ContextMenu per l'intestazione di colonna.
Come implementare sulla base del componente della Tabella? Non voglio usare il componente List.
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)
}
}