Sory, here is a full example
struct ContentView: View {
@State private var name = ""
@State private var email = ""
@State private var toggleState = false
@FocusState private var focusedField: Field?
enum Field { case name, email }
var body: some View {
VStack {
VStack(alignment: .leading) {
Text("Name")
TextField("Enter your name", text: $name)
.focused($focusedField, equals: .name)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("Email")
TextField("Enter your email", text: $email)
.focused($focusedField, equals: .email)
.textFieldStyle(RoundedBorderTextFieldStyle())
.textContentType(.emailAddress)
}
.padding()
Toggle("", isOn: $toggleState)
.labelsHidden()
.hidden()
}
.padding()
.onAppear {
toggleState.toggle()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
toggleState.toggle()
}
}
.toolbar {
ToolbarItemGroup(placement: .keyboard) {
Button {
focusedField = nil
} label: {
Image(systemName: "keyboard.chevron.compact.down")
}
Spacer()
Button("Clear") {
name = ""
email = ""
}
Spacer()
Button("Next") {
switch focusedField {
case .name:
focusedField = .email
case .email:
focusedField = nil
default:
break
}
}
}
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: