【发布时间】:2021-08-18 22:48:50
【问题描述】:
我正在使用 macOS Monterey Beta 5 和 Xcode 13 Beta 5,我遇到了 onDeleteCommand 的问题。基本上,即使没有选择任何项目,它的菜单项也不会禁用。
我试过deleteDisabled,但没有用。
复制方法如下:
- 新建一个空白的 SwiftUI macOS 项目
- 粘贴以下代码:
struct ContentView: View {
@State var data = ["Item1", "Item2", "Item3"]
@State var selection: Set<String> = []
var body: some View {
NavigationView {
List(data, id: \.self, selection: $selection) { item in
Text(item)
}
.onDeleteCommand {
data.removeAll(where: selection.contains) // Removes selected items
selection.removeAll()
}
.deleteDisabled(selection.isEmpty) // This doesn't help either
Text("Second Panel")
}
}
}
- 运行应用程序,然后选择一个项目。
- 进入菜单,然后按编辑 -> 删除。现在选定的项目应该已经消失了,但编辑 -> 删除菜单项仍然处于启用状态。
我能做些什么来解决这个问题(让菜单项自行禁用)?
任何帮助将不胜感激。
【问题讨论】: