วิธีที่จะปรับใช้เมนูเมื่อคลิกขวา@title:tab จะ SwiftUI โต๊ะแถว?

0

คำถาม

ฉันเจอคนใหม่โต๊ะส่วนประกอบของ SwiftUI 3.0 เป็นเหมือนเป็นของเล่นซึ่งสามารถถูกใช้อย่างง่ายดายแต่มันเป็นเรื่องยากที่จะขยายมากกฟังก์ชัน.

TableRow และ TableColumn สืบทอดจากค่าวัตถุ. ยังไงฉันเข้าใจมุมมองของแถว? ฉันต้องการจะตั้งค่าต่างออก ContextMenu สำหรับแต่ละแถวด้วย ที่เพิ่มมานอกเหนือจากฉันต้องการเพื่อใช้ตั้งค่า ContextMenu สำหรับส่วนหัวสดมภ์.

วิธีที่จะรับคำสั่งเข้าใจมันร้องบนพื้นฐานของโต๊ะส่วนประกอบ? ฉันไม่ต้องการจะใช้รายการส่วนประกอบ.

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

คำตอบที่ดีที่สุด

0

เพื่อที่จะมี contextMenu ทำงาน SwiftUI 3.0 โต๊ะมันจำเป็นต้องเพิ่มมันไปทุก TableColumn กอันเราเจอมันถูกซ่อนอยู่ อีกอย่างถ้าคุณต้องการเพิ่ม Double Tap สนับสนุนมันเป็นจำเป็นต้องเพิ่มมันโดยอิสระจากกันเหมือนกัน

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

ขอบคุณสำหรับของคุณตอบกลับไปยังผู้รับจดหแต่นี่ implementation เดียวที่สามารถทำงานที่เนื้อหาของเซลล์ไม่สามารถมอปกปิดงเนื้อหาของทั้งหมดได้และจะไม่มีผลสำหรับช่องว่างส่วนหนึ่งของบรรทัด.
user1397892

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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