小编use*_*892的帖子

如何将上下文菜单应用于 SwiftUI 表行?

我发现SwiftUI 3.0新增的表格组件就像一个玩具,可以轻松使用,但很难扩展更多的功能。

TableRow 和 TableColumn 继承自 value 对象。我怎样才能获得一行的视图?我想为每一行设置不同的上下文菜单。另外,我想为列标题设置ContextMenu。

在Table组件的基础上如何实现呢?我不想使用列表组件。

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)

}

}
Run Code Online (Sandbox Code Playgroud)

contextmenu tablerow tablecolumn swiftui

6
推荐指数
1
解决办法
1736
查看次数

标签 统计

contextmenu ×1

swiftui ×1

tablecolumn ×1

tablerow ×1