はじめに
@FocusState
を子Viewに渡して使うときの方法がちょっと特殊だったので記録しておきます。
実装
親View
struct ContentView: View {
@State private var text: String = ""
+ @FocusState private var focused: Bool
var body: some View {
VStack(spacing: 50) {
+ SubView(text: $text, focused: $focused)
Button {
focused.toggle()
} label: {
Text("切り替え")
}
}
.padding(20)
}
}
子View
struct SubView: View {
+ @Binding var text: String
var focused: FocusState<Bool>.Binding
var body: some View {
TextField("", text: $text)
+ .focused(focused.projectedValue, equals: true)
.textFieldStyle(.roundedBorder)
}
}
参考記事
おわり
初知りでした