swiftui - 如何让 DatePicker 在表单内保持打开状态?
问题描述
如何使 DatePicker 保持打开状态?
我将 DatePicker 放在 Form 中,所以我必须点击表单才能打开 DatePicker。但相反,我希望它始终处于打开状态,即使用户没有点击表单。无论如何都会实现这一目标吗?
这是我当前的代码。
struct ContentView: View {
@State private var selectedDate = Date()
var body: some View {
VStack{
Form{
DatePicker(selection: self.$selectedDate, in: Date()..., displayedComponents: .date, label: { Text("Select a date") })
}
}
}
}
这就是我尝试过的。使用这种方法
struct ContentView: View {
@State private var pickerReset = UUID()
@State private var selectedDate = Date()
var body: some View {
VStack{
Form{
DatePicker(selection: self.$selectedDate, in: Date()..., displayedComponents: .date, label: { Text("Select a date") }).id(self.pickerReset)
}
}.onAppear{
//I tired to show datePicker with UUID(), but
//this line of code ratherly hide the datepicker
self.pickerReset = UUID()
}
}
}
解决方案
您可以尝试datePickerStyle
明确设置:
struct ContentView: View {
@State private var selectedDate = Date()
var body: some View {
VStack {
Form {
DatePicker("", selection: $selectedDate, in: Date()..., displayedComponents: .date)
.datePickerStyle(WheelDatePickerStyle())
}
}
}
}
如果您愿意,您也可以使用第二个 disabledDatePicker
来显示所选日期 - 表现得更像表单中的标准DatePicker:
struct ContentView: View {
@State private var selectedDate = Date()
var body: some View {
VStack {
Form {
VStack {
DatePicker("Select a date", selection: $selectedDate, in: Date()..., displayedComponents: .date)
.disabled(true)
DatePicker("", selection: $selectedDate, in: Date()..., displayedComponents: .date)
.datePickerStyle(WheelDatePickerStyle())
}
}
}
}
}
推荐阅读
- asp.net-web-api2 - 如何使用条件集合构建 SELECT * WHERE
- database - Oracle 数据库中的回滚
- decodeuricomponent - PHP rawurlencode 后跟 JS decodeURIComponent 给出格式错误的 URI 错误
- python - 在 matplotlib 中为箭头动态添加图例
- webpack - 用于 SRI 规则的 Webpack
- javascript - nodejs进程内存不足时如何理解日志
- python - 使用 django @property 字段在模型中显示 rawqueryset 值
- javascript - 你知道一种计算机算法来解决没有除法运算符的除法能力吗?
- php - .htaccess 修复漂亮的 url
- vercel - Zeit now:如何删除别名?