如何防止 TextEditor 在 SwiftUI 中滚动?

mer*_*yan 6 macos swift swiftui

我正在尝试创建一个TextEditors列表作为 SwiftUI 应用程序的一部分。我希望各个编辑器不要滚动,因为它们构成了一个更大的滚动列表。但是,当我将 TextEditors 添加到列表中时,它们会向下压缩并且每个视图都可以单独滚动。是否有修饰符/技巧可以让 TextEditor 始终适合其文本内容而不滚动,所以我可以实现这一点?

我正在尝试做的一个最小的例子如下:

struct ParentView: View {
    var items: [Item]

    var body: some View {
        List(items, id: \.id) { item in
            EditorView(item: item)
        }
    }
}

struct EditorView: View {
    @ObservedObject var item: Item

    var body: some View {
         TextEditor(text: $item.text)
    }
}

Run Code Online (Sandbox Code Playgroud)

这是在 macOS SwiftUI 应用程序中,而不是在 iOS 应用程序中,以防有任何平台差异。

编辑:正如评论中指出的那样,我尝试了这种方法Dynamic row hight contains TextEditor inside a List inside a SwiftUI但它似乎没有正常工作 - 行仍然没有正确扩展。

mer*_*yan 5

为了解决这个问题,我最终使用修饰符.fixedSize(horizontal: false, vertical: true)将 修复为其完整大小,然后允许SwiftUI 列表中包含 TextEditor 的动态行高度TextEditor中的解决方案在列表中按预期工作。