SwiftUI:在输入之前将TextField的大小扩展为字体大小

时间:2019-08-14 08:06:55

标签: swift swiftui

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)

gif of problem

1 个答案:

答案 0 :(得分:2)

存在一个错误,即除非文本字段具有初始内容,否则设置文本字段的样式无效。希望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 = "" }
    }
}