SwiftUI Picker 视图中没有显示值

No display of value in SwiftUI Picker view

我最近更改了 SwiftUI 中的一些选择器代码,以使用 CaseIterable 枚举而不是项目数组。

这是枚举:

enum ReturnTypes : String, CaseIterable {
    case Scaler
    case Vector
    case Matrix
}

这是选择器代码:

        NavigationView {
            Form {
                Picker("Return Type:", selection: $task.returnType) {
                    ForEach(ReturnTypes.allCases, id: \.self) { type in
                        Text(type.rawValue)
                    }
                }
            }
         }

当我之前将数据放在一个数组中并使用

let returnTypes = ["Scaler", "Vector", "Matrix"]
...
                Picker("Return Type:", selection: $task.returnType) {
                    ForEach(0..<returnTypes.count, id: \.self) {
                        Text(returnTypes[[=12=]])
                    }
                }

task.returnType 的当前值显示在 V 形旁边的表单选择器行上。使用枚举,task.returnType 不会显示在人字形旁边,当我向下钻取到选择器 selection 视图时,没有任何检查,即使我 select 一个项目,我仍然不'在人字形旁边显示任何内容。还有其他人 运行 关注这个问题吗?

所选内容必须与选择器数据属于同一类型,而不是文本标签,如下面的工作示例所示。使用 Xcode 11.4 / iOS 13.4.

测试

struct ContentView: View {
        @State private var returnType: ReturnTypes = .Scaler
        var body: some View {
        NavigationView {
            Form {
                Picker("Return Type:", selection: $returnType) {
                    ForEach(ReturnTypes.allCases, id: \.self) { type in
                        Text(type.rawValue)
                    }
                }
            }
         }
    }
}