我正在制作一个菜单,其中所选项目有一个复选标记。 现在,复选标记位于右侧::
Button(action: {
self.categoryIndex = index
self.selectedCategory = category
}, label: {
Text(category)
if selectedCategory == categories[index] {
Image(systemName: "checkmark")
}
})
最佳答案
可能有更多方法可以做到这一点,但这里有两个选择:
使用选择器
Picker("Menu", selection: $selection) {
ForEach(1..<5, id: \.self) { number in
Text("Option \(number)")
}
}
.pickerStyle(MenuPickerStyle())
将显示如下(iOS/MacOS):
使用切换
这稍微涉及一些,因为您想在选择上绑定(bind)某种操作(假设您需要一个单个选择,如上所述),所以我不知道这是否值得麻烦,但出于教学原因,这里是:
struct CheckedMenu: View {
@State private var selection = "1"
var body: some View {
Menu("Menu") {
Toggle("Option 1", isOn: bindingForOption("1"))
Toggle("Option 2", isOn: bindingForOption("2"))
}
}
private func bindingForOption(_ option: String) -> Binding<Bool> {
Binding<Bool>(get: { selection == option }, set: { if $0 { selection = option } })
}
}
将显示如下(iOS/MacOS):
最后,值得注意的是,第二个选项(切换)允许同时检查多个(不相关)项目,这对于“选项”菜单来说是更好的选择,例如:
关于swift - 菜单项左侧的复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74504998/