どうも、ちょげ(@chogetarou)です。
Pickerの値の変更を検知する方法を紹介します。
方法

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)")
}
}
}
}
コメント