Swift - 如何使用.onSubmit 正确显示文本?
Swift - How to properly display text using .onSubmit?
我正在尝试制作一个非常简单的应用程序,它会询问用户的姓名并在用户按下回车键后使用输入向他们打招呼。我在下面包含了我的代码:
struct ContentView: View {
@State private var input: String = ""
var body: some View {
VStack {
TextField("Please enter your name: ", text: $input)
.onSubmit {
Text("Hello, \(input)")
}
}
}
}
如您所见,我正在使用 TextField() 的 .onSubmit 方法来检测用户何时按下回车键以显示带有 Text() 的字符串。如果我用 print() 替换 Text(),我的代码工作正常,但我并没有尝试在控制台中显示文本。在这一点上,我很确定我误解了 Text() 应该如何使用,并希望将其推向正确的方向。
提前致谢。
您不能将 View
放入 onSubmit
闭包中。
但是您可以添加一个布尔标志并在闭包中将其设置为 true
例如
struct ContentView: View {
@State private var input: String = ""
@State private var showGreeting = false
var body: some View {
VStack {
TextField("Please enter your name: ", text: $input)
.onSubmit {
showGreeting = true
}
if showGreeting {
Text("Hello, \(input)")
}
}
}
}
我正在尝试制作一个非常简单的应用程序,它会询问用户的姓名并在用户按下回车键后使用输入向他们打招呼。我在下面包含了我的代码:
struct ContentView: View {
@State private var input: String = ""
var body: some View {
VStack {
TextField("Please enter your name: ", text: $input)
.onSubmit {
Text("Hello, \(input)")
}
}
}
}
如您所见,我正在使用 TextField() 的 .onSubmit 方法来检测用户何时按下回车键以显示带有 Text() 的字符串。如果我用 print() 替换 Text(),我的代码工作正常,但我并没有尝试在控制台中显示文本。在这一点上,我很确定我误解了 Text() 应该如何使用,并希望将其推向正确的方向。
提前致谢。
您不能将 View
放入 onSubmit
闭包中。
但是您可以添加一个布尔标志并在闭包中将其设置为 true
例如
struct ContentView: View {
@State private var input: String = ""
@State private var showGreeting = false
var body: some View {
VStack {
TextField("Please enter your name: ", text: $input)
.onSubmit {
showGreeting = true
}
if showGreeting {
Text("Hello, \(input)")
}
}
}
}