[SwiftUI]TextFieldの値の変更を検知するには?

SwiftUI

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

TextFieldの値の変更を検知する方法を紹介します。

スポンサーリンク

方法

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

TextFieldの値の変更を検知するには、onChangeモディファイアを使います。

まず、TextFieldにonChangeモディファイアを付与します。

そして、onChangeモディファイアの引数「of」のTextFieldで編集する変数、引数「perform」に値が変更された時に呼び出すクロージャーを指定します。

引数「perform」のクロージャーは、引数で変更後のテキストを受け取ります。

TextField("",text: $editingText)
    .onChange(of: editingText, perform: { newValue in
        //値変更時の処理
    })

onChangeモディファイアを使えば、TextFieldの値の変更を検知することができます。

使用例

以下は、使用例です。

struct ContentView: View {
    @State var editingText = ""
    
    var body: some View {
        VStack {
            TextField("Your Text",text: $editingText)
                .onChange(of: editingText, perform: { newValue in
                    print("NewValue : \(newValue)")
                })
                .padding()
        }
    }
}

コメント

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