我创建了一个新的SwiftUI项目,并在视图中添加了文本字段和按钮。 如何在按下按钮后读出用户在文本字段中键入的内容并使用if-语句?
当前代码:
var body: some View {
VStack {
Text("Hello!").font(.system(size: 32, design: .rounded))
TextField("Write something..").multilineTextAlignment(.center)
Button() {
Text("Send")
}
}
}
谢谢!
答案 0 :(得分:1)
“您需要绑定来存储输入的文本,然后可以在按钮的操作处理程序中阅读它。
编辑:要求我使用该值对结果进行操作。
如果要在某种情况下(或其他任何“结果”)显示警报,有几种方法可以执行。最简单的方法是在满足条件时将@State
设置为true
,并让body
中的某项内容对此更改做出响应。
@State var showTextAlert = false
@State var text: String = ""
var body: some View {
VStack {
Text("Hello!").font(.system(size: 32, design: .rounded))
TextField("Write something..", text: $text).multilineTextAlignment(.center)
Button(action: {
self.showTextAlert = self.text == "test"
}) {
Text("Check If \"Test\"")
}
}
.alert(isPresented: $showTextAlert) { .init(title: Text("Text is \"test\"")) }
}
如果您要引用其他内容进行验证等,请使用@ObservableObject
或将其发送给您拥有的其他任何引用。您拥有文字的价值,并且可以对其进行任何常规操作。
答案 1 :(得分:0)
TextField
是require参数是placeholder
和text
。
注意:也可以在需要时使用其他一些参数
因此,我们必须将字符串绑定到text参数。我们可以使用@State
struct ContentView: View {
@State var textFieldText: String = ""
var body: some View {
VStack {
TextField("Write something..", text: $textFieldText)
.multilineTextAlignment(.center)
Button(action: {
// here you can read the value of self.textFieldText
}) {
Text("Send")
}
}
}
}