まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

【SwiftUI】TextfieldやText Editorで文字が入力されるごとに検知する方法。

onChange()を使えばできるようです。

 

最初に@Stateで変数を定義しておいて、

その値が変わるごとに呼ばれるといった感じです。

 

import SwiftUI

 

struct SwiftUIView: View {

    

    @State private var task = ""

    

    var body: some View {

        Form{

            Section(){

                TextField("タスクを入力",text:$task).onChange(of: task) { value in

                    print("TextField - onChange")

                    //テキスト保存などの処理

                }

            }

            Section (){

                TextEditor(text: $task).frame(width: 300, height: 200)

                    .onChange(of: task) { value in

                        print("TextEditor - onChange")

                        //テキスト保存などの処理

                    }

            }

        }

    }

}

 

struct SwiftUIView_Previews: PreviewProvider {

    static var previews: some View {

        SwiftUIView()

    }

}

 

f:id:rils_k:20220207044329p:plain

 

以下のサイト様を参考にさせていただきました。

www.yururiwork.net

 

 

ちなみにUIKitの場合は前にこんな記事を書きました。

rils-k.hatenablog.com