如果我将
如何让编辑->删除菜单项使用删除键快捷方式?或者如何在macOS上启用使用删除键删除列表中的行?
.onDeleteCommand
添加到列表中,当选择一行时,编辑->删除菜单项将启用。但是,删除键不起作用。我发现该菜单项没有列出快捷方式。尝试使用CommandGroup替换它时,快捷方式变为command + delete。如何让编辑->删除菜单项使用删除键快捷方式?或者如何在macOS上启用使用删除键删除列表中的行?
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
// Turns it into command+delete
// .commands {
// CommandGroup(replacing: CommandGroupPlacement.pasteboard) {
// Button("Delete", action: {
// print("Custom Delete")
// })
// .keyboardShortcut(.delete)
// }
// }
}
}
struct ContentView: View {
@State var data = Data()
@State var selection = Set<Int>()
var body: some View {
List.init(data.models, id: \.id, selection: $selection) {
Text("Name: \($0.name)")
}
.keyboardShortcut(.delete) // This does not work
.onDeleteCommand(perform: { // This works when clicking in the menu
print("Delete row")
})
}
}
struct Model: Identifiable {
let id: Int
let name: String
}
struct Data {
var models = [Model(id: 1, name: "First")]
}