SwiftUI DatePicker 应该是可编辑的内联

Posted

技术标签:

【中文标题】SwiftUI DatePicker 应该是可编辑的内联【英文标题】:SwiftUI DatePicker should be editable inline 【发布时间】:2021-02-22 21:25:12 【问题描述】:

我在 SwiftUI List 中使用 DatePicker。我只对小时和分钟感兴趣,因此不需要新引入的日历视图。

如何防止用户点击时间(上午 8:30)后出现的弹出窗口?如果它可以像在 ios 日历应用中那样内联编辑,那就太理想了。

这是我创建DatePicker的方法:

DatePicker("Send motivation at", selection: $settings.dailyMotivationReminder, displayedComponents: .hourAndMinute)
                .datePickerStyle(DefaultDatePickerStyle())
                .font(.system(.body, design: .serif))
                .disabled(!settings.isDailyMotivationEnabled)
                .opacity(settings.isDailyMotivationEnabled ? 1.0 : 0.4)

【问题讨论】:

【参考方案1】:

你可以使用GraphicalDatePickerStyle:

List 
    HStack 
        Text("Send motivation at")
        DatePicker("", selection: $settings.dailyMotivationReminder, displayedComponents: .hourAndMinute)
            .datePickerStyle(GraphicalDatePickerStyle())
            .font(.system(.body, design: .serif))
    

【讨论】:

抱歉忘记添加了。我实际上已经设置了那种风格,它并没有改变任何东西。我假设您的代码运行良好,因此可能是其他原因导致选择器显示在弹出窗口中。 经过测试的@pawello2222 代码,都按预期工作(mac 11,ios 14.2)。所以是的,一定是其他原因导致了问题。向我们展示您正在使用的其他代码,以便我们追踪问题。 大家好,你是对的。真正的问题是我必须把它放在HStack 中并分开TextDatePicker否则它不会工作。非常感谢!

以上是关于SwiftUI DatePicker 应该是可编辑的内联的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI DatePicker:有没有办法让他们不能使用键盘来编辑字段?

SwiftUI DatePicker 在更改日期时在短日期格式和中日期格式之间跳转

如何在编辑其他字段时自动折叠表单中的 DatePicker?

Android中关闭DatePicker和NumberPicker等Picker类的可编辑模式

如何在 SwiftUI 中将 DatePicker 放入 ContextMenu

在打印语句 SwiftUI 上显示 DatePicker hourAndMinute