macOS SwiftUI DatePicker カレンダー 最大値 / 最小値 Range

Pocket

SwiftUIDatePickermacOSで使う 下記は シンプルなコード例

struct ContentView: View {
    @State var d1: Date = Date()
    @Binding var title: String
    var body: some View {
        ZStack{
            Color.clear.frame(width: 350, height: 200)
            VStack{
                DatePicker("日時", selection: $d1).frame(width: 300)
                Spacer().frame(height: 150)
            }
        }
    }
}
macOS DatePicker例

↓下記は、 DatePicker の最大値と最小値を設定するコード例です

struct ContentView: View {
    @State var d1: Date = Date()
    @Binding var title: String
    @State var target:Date = Date()
    var dateClosedRange: ClosedRange<Date> {
        let min = Calendar.current.date(byAdding: .day, value: -7, to: target)! //7日前
        let max = Calendar.current.date(byAdding: .day, value: 1, to: target)!  //1日後
        return min...max
    }

    var body: some View {
        ZStack{
            Color.clear.frame(width: 350, height: 200)
            VStack{
                DatePicker("日時", selection: $d1, in: dateClosedRange).frame(width: 300)
                Spacer().frame(height: 150)
            }
        }
    }
}

DatePicker の “in” に ClosedRange<Date>で最大値と最小値を指定しています。

DatePicker の "in" に ClosedRange<Date>で最大値と最小値を指定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED