SwiftUI macOS 列表行删除填充

lvo*_*mer 6 macos swift swiftui

我正在尝试在 SwiftUI for MacOS 中的 ListView 中显示一行。但是,我的问题是该行包含它周围的填充。我想将其扩展到我的ListView.

苹果.listRowInsets(EdgeInsets())在他们的例子中使用。但是,这仅在 iOS 上显示。对我来说,它不适用于 macOS。

我的行有一个红色边框来可视化问题。我希望它一直拉伸到列表行的边界,所以填充整个蓝色行。这在 macOS 中可能吗?

提前致谢。

预览

Asp*_*eri 10

现在我找到了唯一的解决方法(.listRowInsets应该真的完成这项工作,所以值得向 Apple 提交反馈):

演示

struct TestListRow: View {
    var body: some View {
        List {
            ForEach (0..<3) { i in
                HStack {
                    Text("Test row \(i)").font(.largeTitle)
                    Spacer()
                }
            }
            .listRowBackground(Color.green)
            .border(Color.red)
            .padding(.horizontal, -8)   // << workaround !!
        }.environment(\.defaultMinListRowHeight, 40)
        .border(Color.yellow)
    }
}
Run Code Online (Sandbox Code Playgroud)