Swift TextEditorのフォーカスを操作するサンプル
環境
Swift version 5.2.3 (swift-5.2.3-RELEASE)
Ubuntu 20.04.2 LTS
構文
TextEditorのフォーカスを操作するには、@FocusStateとfocused修飾子を使います。
作成方法
1.Bool型の@FocusStaeを定義します。
@FocusState private var focusedField: Bool
2.extEditorにfocused修飾子を付与し、引数に用意した変数の参照を指定します。
TextEditor(text: $text)
.focused($focusedField)
フォーカスを合わせたい時は変数の値を「true」、フォーカスを外したい時は変数の値を「false」にします。
使用例
struct ContentView: View { @State var text = "" @FocusState private var focusedField: Bool var body: some View { VStack { TextEditor(text: $text) .frame(width: 250, height: 250) .border(Color.red) .focused($focusedField) Button(focusedField ? "フォーカスしない" : "フォーカス") { self.focusedField.toggle() } } } }