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 = "" }
}
}
我在使用 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 = "" }
}
}