SwiftUI 表单中的选取器在选择一个值后变为灰色

Posted

技术标签:

【中文标题】SwiftUI 表单中的选取器在选择一个值后变为灰色【英文标题】:Picker in SwiftUI Form turns gray after selecting a value 【发布时间】:2020-12-22 08:56:56 【问题描述】:

由于某种原因,在我选择一个值后,我的 SwiftUI 表单中的选择器变为灰色。

我的代码:

Form 
  Section 
    TextField("title", text: $title)
      Picker(selection: $category, label: Text("category")) 
        ForEach(0..<categories.count)  index in
            Text(categories[index]).tag(index)
      
    
  

【问题讨论】:

无法使用 Xcode 12.1 / ios 14.1 重现。你用的是哪个环境? Xcode 12.3 / iOS 14.3 也无法重现。 你在真机上测试过吗?我偶尔会在模拟器上看到这个... 是的,我在 iOS 14 下的 iPhone 11 上试了一下,还是遇到了同样的问题 MacOS 中的默认系统行为也出现在菜单中。 ***.com/questions/65771764/…备案FB8974731 【参考方案1】:

您需要将表单包装在 NavigationView 中,原因是当您点击选择器时会弹出另一个页面,因此它需要导航视图才能返回导航。

NavigationView 
  Form 
    Section 
      TextField("title", text: $title)
        Picker(selection: $category, label: Text("category")) 
          ForEach(0..<categories.count)  index in
              Text(categories[index]).tag(index)
        
      
    
  

【讨论】:

没用。我已经在导航视图中,当我做出选择后返回时,我的选择器仍然是灰色的。

以上是关于SwiftUI 表单中的选取器在选择一个值后变为灰色的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:列表项跳转到选取器表单中的标题

SwiftUI Picker 多个错误,核心数据,布局

无法使用 SwiftUI 使选取器居中

如何正确处理更新视图中的选取器(SwiftUI)

表单中的 SwiftUI 选择器 - 索引超出范围

表单中的 SwiftUI Picker 不显示来自 CoreData 的复选标记