SwiftUI Form Validation
Main Idea
SwiftUI’s Form view lets us store user input in a really fast and convenient way, but sometimes it’s important to go a step further – to check that input to make sure it’s valid before we proceed.
Well, we have a modifier just for that purpose: disabled(). This takes a condition to check, and if the condition is true then whatever it’s attached to won’t respond to user input – buttons can’t be tapped, sliders can’t be dragged, and so on. You can use simple properties here, but any condition will do: reading a computed property, calling a method, and so on,
struct ContentView: View {
@State private var username = ""
@State private var email = ""
var disableForm: Bool {
username.count < 5 || email.count < 5
}
var body: some View {
Form {
Section {
TextField("Username", text: $username)
TextField("Email", text: $email)
}
Section {
Button("Create account") {
print("Creating account...")
}
}
.disabled(disableForm)
}
}
}
Notes mentioning this note
SwiftUI Form
Main Idea Forms are scrolling lists of static controls like text and images, but can also include user interactive controls...