Hi,
I am having trouble setting default focus on a TextField that is inside of an alert. I expected TextField to receive default focus when alert is presented but result is that TextField does not receive default focus. This is happening on macOS 15.2, Swift (SwiftUI), Xcode 16.2 but hasn't worked on previous versions as well.
Example:
ContentView().alert("Sample Alert", isPresented: $present) {
AlertView()
} message: {
Text("Sample alert message.")
}
struct AlertView: View {
@Namespace private var namespace
@Environment(\.dismiss) private var dismiss
@State private var text = ""
var body: some View {
VStack {
TextField(text: $text, prompt: Text("Enter text")) {}
.onSubmit {
var _ = print(text)
dismiss()
}
.autocorrectionDisabled()
.lineLimit(1)
.prefersDefaultFocus(in: namespace)
Button("OK") {
dismiss()
}
Button("Cancel", role: .cancel) {
dismiss()
}
}
.focusScope(namespace)
}
}