选择菜单项SwiftUI时如何打勾

选择菜单项SwiftUI时如何打勾,swiftui,checkmark,Swiftui,Checkmark,我试图在选中菜单项时打勾。我试图给出@State var selectedSort:Int=.zero并给出id(selectedSort),但没有成功。我怎样才能解决这个问题 这是我的密码 struct SortMenuPickerView : View { @Binding var sortClicked : Bool @ObservedObject var productListViewModel = ProductListViewModel() @State var sortListA

我试图在选中菜单项时打勾。我试图给出@State var selectedSort:Int=.zero并给出id(selectedSort),但没有成功。我怎样才能解决这个问题

这是我的密码

struct SortMenuPickerView : View {

@Binding var sortClicked : Bool
@ObservedObject var productListViewModel = ProductListViewModel()
@State var sortListArray : [ProductListSortAndFilterList]
var function: () -> Void
@Binding var sortId : String

var body : some View {
    
    HStack(alignment: .center){
        
        Spacer()
        
        Menu {
            
            ForEach(sortListArray,id:\.id){ item in
                if item.id == "sort" {
                    
                    ForEach(item.sortList ?? [],id:\.id) { data in
                        
                        Button(action: {
                            
                            sortId = (data.id ?? "")
                            
                            self.function()
                            
                            print("selected item is : \(data.id!)")
                            
                            
                        }) {
                            
                            Text(data.name ?? "")
                                .tag(data.id)
                            
                        }
                    }
                }
            }
        } label: {
            
            SortView()
            
        }

尝试picker风格的菜单,可根据您的要求进行定制

其示例如下:

@State private var sort: Int = 0

var body: some View {
    NavigationView {
        Text("Hello World!")
        .toolbar {
            ToolbarItem(placement: .primaryAction) {
                Menu {
                    Picker(selection: $sort, label:Text("Sortingoptions")) {
                        Text("Sort1").tag(0)
                        Text("Sort2").tag(1)
                        Text("Sort3").tag(2)
                    }
                }
                label: {
                    Text("Sort")
                }
            }
        }
    }
}