I'm trying to get the new iOS 15.0 .focused() View Modifier to execute when a SwiftUI View appears:
import SwiftUI
struct MainView: View {
@State var subViewIsDisplayed = false
var body: some View {
VStack {
Spacer()
Button(action: { subViewIsDisplayed.toggle() }) {
Text("Trigger SubView")
}
Spacer()
}
.fullScreenCover(isPresented: $subViewIsDisplayed) {
SubView()
}
}
}
struct SubView: View {
@Environment(\.dismiss) var dismiss
@FocusState private var isFocused: Bool
@State var text = ""
var body: some View {
VStack {
HStack {
Spacer()
Button(action: { dismiss() }) {
Image(systemName: "xmark")
}
}
Spacer()
TextField("Please autofocus :(", text: $text)
.focused($isFocused)
Spacer()
}
.onAppear {
self.isFocused = true
}
}
}
struct MainView_Previews: PreviewProvider {
static var previews: some View {
MainView()
}
}
On my physical device, triggering "SubView" doesn't bring up the keyboard (as I would expect from .focused). What am I doing wrong?
