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」にします。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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()
}
}
}
}
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() } } } }
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