我正在使用SwiftUI的Table
为macOS应用程序生成一个表。我希望能够隐藏基于AppStorage
条目的列。TableColumnBuilder
似乎不支持条件语句:
Table(tableData) {
// This does not work:
if showColumndA {
TableColumn("Column A", value: \Row.columnA)
}
// Other columns genereated here
// ...
}
有没有一种方法可以用SwiftUI构建一个表,让用户可以选择要显示哪些列?
(根据哪些列可见的所有可能排列显示不同的表对我的情况不起作用)
1条答案
按热度按时间vq8itlhq1#
正如Geoff Hackworth所提到的,似乎有一个针对macOS 14的解决方案(在撰写本文时,这对我来说不是一个选择)。
我最终通过扩展
@TableColumnBuilder
来支持条件来解决了我的问题(感谢Swift Lee对@resultBuilder
API的精彩介绍):下面的小示例应用程序使用我的
@TableColumnBuilder
扩展随机显示列A或列B: