どうも、ちょげ(@chogetarou)です。
TextEditorのフォーカスを操作する方法を紹介します。
方法

TextEditorのフォーカスを操作するには、@FocusStateとfocused修飾子を使います。
まず、Bool型の@FocusStaeを用意します。
@FocusState private var focusedField: Bool
次に、TextEditorに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: 300, height: 200)
.border(Color.blue)
.focused($focusedField)
Button(focusedField ? "UnFocus" : "Focus") {
self.focusedField.toggle()
}
}
}
}
コメント