SwiftUI-展开文本字段以填充视图

SwiftUI-展开文本字段以填充视图,swiftui,Swiftui,我试图创建一个横跨整个窗口的文本字段。当前,它仅扩展以填充水平轴上的视图。我的目标是实现类似于文本编辑的功能 以下是我目前的代码: struct ContentView:View{ @State var contents:String=“Hello World\n这是一个测试。”; var body:一些观点{ VStack(){ 文本字段(“注释”,文本:$contents) .lineLimit(无) } .框架(高度:600) } } 这在SwiftUI中是可能的,还是我需要恢复使用旧

我试图创建一个横跨整个窗口的文本字段。当前,它仅扩展以填充水平轴上的视图。我的目标是实现类似于文本编辑的功能

以下是我目前的代码:

struct ContentView:View{
@State var contents:String=“Hello World\n这是一个测试。”;
var body:一些观点{
VStack(){
文本字段(“注释”,文本:$contents)
.lineLimit(无)
}
.框架(高度:600)
}
}


这在SwiftUI中是可能的,还是我需要恢复使用旧的AppKit组件?

根据本文和对它的评论,TextField行限制似乎存在缺陷


我相信,在这条线索中,你可以找到答案,如何实现你想要的。

我发现,包装NSTextView仍然是实现类似于TextEdit的功能的最佳方式。所以是的,至少现在您必须在SwiftUI代码中使用遗留的AppKit组件

struct MultilineTextView: NSViewRepresentable {
    typealias NSViewType = NSTextView

    @Binding var text: String

    func makeNSView(context: Self.Context) -> Self.NSViewType{
        let view = NSTextView()
        view.isEditable = true
        view.isRulerVisible = true
        return view
    }

    func updateNSView(_ nsView: Self.NSViewType, context: Self.Context) {
        nsView.string = text
    }
}


struct ContentView: View {
    @State var contents: String = "Hello World\nThis is a test.";

    var body: some View {
        VStack() {
            MultilineTextView(text: $contents)
        }.background(Color.white)
    }
}

谢谢,这是一个很好的选择。希望苹果将来能更新SwiftUI来支持它,而不需要AppKit。我相信这是一个单独的问题,因为我在创建多行文本字段方面没有问题,这已经实现了。我的问题是如何扩展此文本字段以填充视图。