当菜单项选择SwiftUI时,如何放置复选标记



当菜单项被选中时,我试图放置复选标记。我试着给一个@状态var selectedSort: Int = . 0和给出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()

}

尝试使用选择器样式的菜单&可根据您的要求定制…

它的示例:

@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")
}
}
}
}
}

最新更新