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

DatePickerの日付の変更を検知するには、onChange修飾子を使います。
まず、DatePickerにonChange修飾子を付与します。
そして、onChange修飾子の引数「of」に変更される変数、引数「perform」に日付が変更される時に呼び出すクロージャーを指定します。
引数「perform」のクロージャーは、引数で変更後の日付を受け取ることができます。
DatePicker("", selection: $date)
.onChange(of: date, perform: { value in
//変更時の処理
//クロージャーの引数で変更後の値を受け取る
})
onChange修飾子を使うことで、DatePickerの日付の変更を検知することができます。
使用例
以下は、使用例です。
struct ContentView: View {
@State var date = Date()
@State var textDate = ""
var body: some View {
VStack{
Text(textDate)
DatePicker("Select Date", selection: $date)
.onChange(of: date, perform: { value in
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "YY/MM/dd"
self.textDate = dateFormatter.string(from: self.date)
})
}
}
}
コメント