SwiftUİ Tablo satırına içerik menüsü nasıl uygulanır?

0

Soru

SwiftUİ 3.0'ın yeni tablo bileşeninin kolayca kullanılabilen bir oyuncak gibi olduğunu, ancak daha fazla işlevi genişletmenin zor olduğunu buldum.

TableRow ve TableColumn değer nesnesinden devralır. Bir sıranın görüntüsünü nasıl alabilirim? Her satır için farklı bir ContextMenu ayarlamak istiyorum. Ayrıca, sütun başlığı için contextmenu'yu ayarlamak istiyorum.

Tablo bileşeni temelinde nasıl uygulanır? Liste bileşenini kullanmak istemiyorum.

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)

}

}
contextmenu swiftui tablecolumn tablerow
2021-11-16 23:43:33
1

En iyi cevabı

0

Contextmenu'nun SwiftUİ 3.0 Tablosunda çalışması için, onu her TableColumn öğesine eklemeniz gerekir. Artı, eğer eklemek istediğiniz Double Tap destek de bağımsız olarak eklenmelidir.

Table(documents, selection: $fileSelection) {
    TableColumn("File name") { item in
        Text(item.filename)
            .contextMenu { YOUR_CONTEXT_MENU }
            .simultaneousGesture(TapGesture(count: 1).onEnded { fileSelection = item.id })
            .simultaneousGesture(TapGesture(count: 2).onEnded { YOUR_DOUBLE_TAP_IMPLEMENTATION })
    }
    TableColumn("Size (MB)") { item in
        Text(item.size)
            .contextMenu { YOUR_CONTEXT_MENU }
            .simultaneousGesture(TapGesture(count: 1).onEnded { fileSelection = item.id })
            .simultaneousGesture(TapGesture(count: 2).onEnded { YOUR_DOUBLE_TAP_IMPLEMENTATION })
    }
}
2021-11-21 10:57:48

Yanıtınız için teşekkür ederiz, ancak bu uygulama yalnızca hücrenin içeriği üzerinde çalışabilir, tüm satırın içeriğini tamamen kapsayamaz ve satırın boş kısmı için etkili olmaz.
user1397892

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................