< How to group views together with ControlGroup | How to take action when the user submits a TextField > |
Updated for Xcode 14.2
SwiftUI’s TextField
view is similar to UITextField
in UIKit, although it looks a little different by default and relies very heavily on binding to state.
To create one, you should pass in a placeholder to use inside the text field, plus the state value it should bind to. For example, this creates a TextField
bound to a local string, then places a text view below it that shows the text field’s output as you type:
struct ContentView: View {
@State private var name: String = "Tim"
var body: some View {
VStack(alignment: .leading) {
TextField("Enter your name", text: $name)
Text("Hello, \(name)!")
}
}
}
Download this as an Xcode project
When that’s run, you should be able to type into the text field and see a greeting appear directly below.
There are two important provisos when working with text fields. First, they don’t have a border by default, so you probably won’t see anything – you’ll need to tap inside roughly where it is in order to activate the keyboard.
Second, you might find you can’t type into the canvas preview of your layout. If you hit that problem, press Cmd+R to build and run your code in the simulator.
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.