을 적용하는 방법은 컨텍스트 메뉴 SwiftUI 표 행?

0

질문

내가 찾는 새로운 테이블의 구성 요소 SwiftUI3.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 에서 작업하 SwiftUI3.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

당신의 답변에 감사드립니지만,이를 구현할 수 있습만 작업의 콘텐츠에 셀 수 없이 완전히 덮을 콘텐츠 전체의 라인이 적용되지 않습을 위해 빈 부분을 확인합니다.
user1397892

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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