SwiftUI:在输入前将 TextField 大小扩展到字体大小

SwiftUI: Expanding TextField size to font size before input

我在使用 SwiftUI TextField 时遇到问题。光标和文本字段的大小最初非常小,在输入时它会增长到完整大小(在本例中为 .largeTitle)。我将背景设为黑色,这样您就可以看到实际领域发生了什么。有没有办法设置 TextField 的大小,以便光标从与文本相同的大小开始?我已经尝试了文档中的所有功能,但没有成功...这是使用 Xcode 11 Beta 5。谢谢!

TextField("", text: input)
    .lineLimit(nil) // doesn't seem to work in Xcode 11 Beta 5
    .font(.largeTitle)
    .foregroundColor(.blue)
    .background(Color.black)

存在一个错误,即设置文本字段的样式无效,除非文本字段具有初始内容。让我们希望 beta 6 能解决这个问题。同时,这里有一个适合我的解决方法:

文本字段以一个值开头,但会在 .onAppear 闭包中立即重置,因此您永远不会真正看到它:

struct ContentView: View {
    @State private var input = "x"

    var body: some View {
        TextField("", text: $input)
        .lineLimit(nil) // doesn't seem to work in Xcode 11 Beta 5
        .font(.largeTitle)
        .foregroundColor(.blue)
        .background(Color.black)
        .onAppear { self.input = "" }
    }
}