[SwiftUI]DatePickerの日付の変更を検知するには?

SwiftUI

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

DatePickerの日付の変更を検知する方法を紹介します。

スポンサーリンク

方法

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

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)
                })
        }
    }
}

コメント

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