iOS 14 菜单选择器样式的标签在更改时有时会变暗

iOS 14 menu picker style's label becomes dim sometimes when changing

我的 SwiftUI View 中有一个 Picker 和新的 MenuPickerStyle

如您所见,选择器的标签与选项相同,从一个选项更改为另一个选项时会变暗。

看起来它是不可点击的,但是当点击它时它会完成所需的工作。

这是我的代码。这只是一个非常简单的选择器实现。

struct MenuPicker: View {
    
    @State var selection: String = "one"
    
    var array: [String] = ["one", "two", "three", "four", "five"]

    var body: some View {
        Picker(selection: $selection, label: Text(selection).frame(width: 100), content: {
            ForEach(array, id: \.self, content: { word in
                Text(word).tag(word)
            })
        })
        .pickerStyle(MenuPickerStyle())
        .padding()
        .background(Color(.systemBackground).edgesIgnoringSafeArea(.all))
        .cornerRadius(5)
    }
}

struct ContentView: View {
    
    var body: some View {
        ZStack {
            Color.gray
            MenuPicker()
        }
    }
}

看起来这是一个错误:

public init(selection: Binding<SelectionValue>, label: Label, @ViewBuilder content: () -> Content)

您可以尝试将其替换为:

public init(_ titleKey: LocalizedStringKey, selection: Binding<SelectionValue>, @ViewBuilder content: () -> Content)

这里有一个解决方法(你只能使用String作为标签):

Picker(selection, selection: $selection) {
    ForEach(array, id: \.self) { word in
        Text(word).tag(word)
    }
}
.frame(width: 100)
.animation(nil)
.pickerStyle(MenuPickerStyle())