SwiftUI 滚动视图部分显示 Mac 应用中的最后一项

SwiftUI scroll view partially displays last item in Mac app

如何在 Mac 应用程序中使用 SwiftUI 正确设置 ScrollView?下面的示例剪辑了最后一项。

import SwiftUI

struct NameRow: View {

    var name: String

    var body: some View {
        VStack {
            Spacer()
            Text("\(name)")
            Spacer()
            Divider()
        }.frame(width: 100, height: 40)
    }
}

struct ContentView: View {

    let names = ["Homer", "Marge", "Lisa", "Bart", "Maggie", "Krusty", "Burns", "Nelson", "Otto"]

    var body: some View {
        VStack {
            ScrollView {
                ForEach(names, id: \.self) { name in
                    NameRow(name: name)
                }
            }
        }.frame(width: 100, height: 160)
    }
}

如图所示,最后一项被 window 剪裁。此视图已滚动到底部,但 "Otto" 项目未完全显示。

如果在 AppDelegate.swift 中从 window 初始化中删除 .fullSizeContentView 使其如下所示,那么它将完全显示列表。

window = NSWindow(
    contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
    styleMask: [.titled, .closable, .miniaturizable, .resizable],
    backing: .buffered, defer: false)

我不知道这是错误还是设计使然。