我一直在尝试SWiftUI,似乎根本找不到关于如何使用SWiftUI来创建多列TableView的信息,就像在NSTableView中一样。我设法找到的所有示例都显示一列数据。 Apple的文档甚至指定SwiftUI列表结构用于数据行的单列显示。对于MacOS上的应用程序来说,这是一个非常基本的数据结构,但似乎在任何地方都没有提及它!
有人可以阐明这一点吗?我想它还没有准备好,但是还…。
答案 0 :(得分:2)
在 macOS Monterey 中,NSTableView
现在可以用 Table
包装。此外,Table
可以支持带有关键路径和尾随闭包的 TableColumn
。
struct ContentView: View {
@State private var characters = StoryCharacter.previewData
var body: some View {
Table(characters) {
TableColumn("?") { CharacterIcon($0) }
.width(20)
TableColumn("Villain") { Text($0.isVillain ? "Villain" : "Hero") }
.width(40)
TableColumn("Name", value: \.name)
TableColumn("Powers", value: \.powers)
}
}
}
答案 1 :(得分:0)
您可以创建一个HStack,然后在两个VStack之间有一个分隔线,您可以在其中放置不同的数据列。看起来像这样:
List {
HStack {
VStack {
//Column 1 Data
}
}
Divider()
VStack {
//Column 2 Data
}
}
然后重复此操作,以用于需要多列数据的情况。
答案 2 :(得分:0)
现在可以从 macOS 12 到 Table
。