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()
            }
        }
    }
}

 

Swift

Posted by arkgame