Select list items with Command + number.

This commit is contained in:
2025-02-09 19:26:29 -08:00
parent 25ef392634
commit bba267f37d
3 changed files with 16 additions and 0 deletions

View File

@@ -34,6 +34,8 @@ final class EditableNSTextField: NSTextField {
if NSApp.sendAction(#selector(NSResponder.selectAll(_:)), to: nil, from: self) { if NSApp.sendAction(#selector(NSResponder.selectAll(_:)), to: nil, from: self) {
return true return true
} }
} else if isNumericalCode(key) { // Ignore Command + {1-9}.
return true
} }
} else if modsContains(keys: OSCmd | OSShift, in: modifiers) { } else if modsContains(keys: OSCmd | OSShift, in: modifiers) {
if key == kVK_ANSI_Z { if key == kVK_ANSI_Z {

View File

@@ -11,6 +11,10 @@ func modsContains(keys: UInt, in modifiers: UInt) -> Bool {
return (modifiers & keys) == keys && ((modifiers ^ keys) & OSMods) == 0 return (modifiers & keys) == keys && ((modifiers ^ keys) & OSMods) == 0
} }
func isNumericalCode(_ key: UInt16) -> Bool {
return (key == kVK_ANSI_1 || key == kVK_ANSI_2 || key == kVK_ANSI_3 || key == kVK_ANSI_4 || key == kVK_ANSI_5 || key == kVK_ANSI_6 || key == kVK_ANSI_7 || key == kVK_ANSI_8 || key == kVK_ANSI_9)
}
func modsContainsNone(in modifiers: UInt) -> Bool { func modsContainsNone(in modifiers: UInt) -> Bool {
return (modifiers & OSMods) == 0 return (modifiers & OSMods) == 0
} }

View File

@@ -192,6 +192,16 @@ class SearchViewController: NSViewController, NSTextFieldDelegate, NSPopoverDele
modsContainsNone(in: modifiers) && key == kVK_DownArrow modsContainsNone(in: modifiers) && key == kVK_DownArrow
{ {
controller.programsTableViewSelection += 1 controller.programsTableViewSelection += 1
} else if modsContains(keys: OSCmd, in: modifiers) && isNumericalCode(key) {
if key == kVK_ANSI_1 { controller.programsTableViewSelection = 0 }
if key == kVK_ANSI_2 { controller.programsTableViewSelection = 1 }
if key == kVK_ANSI_3 { controller.programsTableViewSelection = 2 }
if key == kVK_ANSI_4 { controller.programsTableViewSelection = 3 }
if key == kVK_ANSI_5 { controller.programsTableViewSelection = 4 }
if key == kVK_ANSI_6 { controller.programsTableViewSelection = 5 }
if key == kVK_ANSI_7 { controller.programsTableViewSelection = 6 }
if key == kVK_ANSI_8 { controller.programsTableViewSelection = 7 }
if key == kVK_ANSI_9 { controller.programsTableViewSelection = 8 }
} }
if controller.programsTableViewSelection > controller.listIndex-1 { if controller.programsTableViewSelection > controller.listIndex-1 {