SwiftUI 选择器分隔符
Posted
技术标签:
【中文标题】SwiftUI 选择器分隔符【英文标题】:SwiftUI Picker Separators 【发布时间】:2020-07-22 15:11:09 【问题描述】:我正在尝试在 MacOS 中创建一个 SwiftUI 选择器,它看起来像 Xcode 或其他 Mac 应用程序中的选择器。更具体地说,我正在尝试在选择器中的元素之间添加分隔线。
像这些:
我尝试了几个选项,但找不到添加这些分隔符的方法。
选择器示例代码:
Picker("Pick an option", selection: $selection)
Text("Option 1").tag(0)
Text("Option 2").tag(1)
Text("Option 3").tag(2)
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:这是一个可能的技巧(不能将其命名为解决方案,而是解决方法)
使用 Xcode 11.4 / macOS 10.15.5 测试
Picker("Pick an option", selection: $selection)
Text("Option 1").tag(0)
VStack Divider().padding(.leading)
Text("Option 2").tag(1)
Text("Option 3").tag(2)
注意:VStack
需要使Divider
水平,否则由于某些Apple-ty 原因是垂直的。
【讨论】:
感谢您的回答!我试过了,但 Divider 视图也是选项列表的一部分,您可以选择它。 (我不想要那种行为) 你标记了吗?当我测试它时它是不可选择的。 不,我只标记了可选择的项目,但我对select
的意思是你悬停该项目将突出显示,如果你点击它,它将不会被选中,但弹出窗口会消失。在 Xcode 的控件中(如屏幕截图中),悬停和单击操作被忽略。
只需使用Divider()
而不是VStack Divider().padding(.leading)
。分隔线不再是垂直的,将无法选择。以上是关于SwiftUI 选择器分隔符的主要内容,如果未能解决你的问题,请参考以下文章
来自先前选择器的选择器值 - CoreData/SwiftUI