SwiftUI DatePicker:有没有办法让他们不能使用键盘来编辑字段?
Posted
技术标签:
【中文标题】SwiftUI DatePicker:有没有办法让他们不能使用键盘来编辑字段?【英文标题】:SwiftUI DatePicker: Is there a way to make it so they can't use the keyboard to edit the fields? 【发布时间】:2021-06-07 00:19:30 【问题描述】:我有一个应用程序,我正在使用多个日期选择器随时在屏幕上使用。我让选择器自己工作,但我不希望键盘显示以进行编辑。
我更喜欢让用户使用滚轮而不是键盘来更改时间。我一直在寻找阻止键盘出现的方法,但我没有找到解决方案。
我基本上想要一个较小版本的旧图形选择轮。
这是我的选择器的代码:
struct TimePicker: View
@Binding var time: Date
var body: some View
DatePicker("", selection: $time, displayedComponents: .hourAndMinute)
.datePickerStyle(GraphicalDatePickerStyle())
任何想法将不胜感激。
【问题讨论】:
为什么?这是一种糟糕的用户体验。我更喜欢在字段之间切换并输入数字。 这是我想移除的 ios 设备上的弹出式键盘。我同意在字段之间切换更容易,但这不是 iOS 设备上的选项。 好的,但这不应该是用户的选择吗?如果键盘挡住了,有一个按钮可以放下键盘。 我通常会同意,但键盘在 SwiftUI 中有一些奇怪的不一致行为。有些东西在模拟器中可以正常工作,但不能在我的 iPad 上工作。同样的事情在 iPhone 上也可以正常工作,但会阻止您正在编辑的部分。我确信我可以找到解决所有正在发生的问题的方法,但是如果键盘没有在 iOS 设备上弹出会容易得多。 【参考方案1】:答案在文档中并不明显,但实际上非常简单。
只需替换.datePickerStyle(GraphicalDatePickerStyle())
与:.datePickerStyle(WheelDatePickerStyle())
这样:
struct TimePicker: View
@Binding var time: Date
var body: some View
DatePicker("", selection: $time, displayedComponents: .hourAndMinute)
.datePickerStyle(WheelDatePickerStyle())
【讨论】:
以上是关于SwiftUI DatePicker:有没有办法让他们不能使用键盘来编辑字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中更改 DatePicker 字体粗细
如何在 SwiftUI 中将 DatePicker 放入 ContextMenu
有没有办法在编辑时将 TextField 的光标移动到文本的末尾?- SwiftUI