[SwiftUI]TextEditorのフォーカスを操作するには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

TextEditorのフォーカスを操作する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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

コメント

タイトルとURLをコピーしました