[SwiftUI]Picker(ピッカー)の値の変更を検知するには?

SwiftUI

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

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

スポンサーリンク

方法

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

Pickerの値の変更を検知するには、onChange修飾子を使います。

まず、PickerにonChange修飾子を付与します。

そして、onChangeの引数「of」にPickerの値、クロージャに値が変更された時の処理を指定します。

onChangeのクロージャーは、変更後の値を受け取る引数を持っています。

Picker(・・・)
    .onChange(of: value) { newValue in
        //変更時の処理
    }

onChange修飾子を使うことで、Pickerの値の変更を検知することができます。

使用例

以下は、使用例です。

struct ContentView: View {
    @State private var selectedIndex = 0
    
    var body: some View {
        VStack {
            Picker(selection: $selectedIndex, label: Text("")) {
                ForEach(0..<5) {
                    Text("Item \($0)")
                }
            }
            .onChange(of: selectedIndex) { newValue in
                print("changet to \(newValue)")
            }
        }
    }
}

コメント

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