我正在尝试制作一个非常简单的应用程序,它会询问用户的姓名,并在用户按下 Enter 键后使用输入内容向他们打招呼。我在下面包含了我的代码:
struct ContentView: View {
@State private var input: String = ""
var body: some View {
VStack {
TextField("Please enter your name: ", text: $input)
.onSubmit {
Text("Hello, \(input)")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用 TextField() 的 .onSubmit 方法来检测用户何时按下 Enter 键以便使用 Text() 显示字符串。如果我用 print() 替换 Text() ,我的代码可以正常工作,但我不想在控制台中显示文本。在这一点上,我很确定我已经误解了 Text() 应该如何使用,并且希望将其推向正确的方向。
提前致谢。
您不能将 a 放入闭包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)")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |