Open
Description
I create a KeyboardShortcuts.Name
called my_capslock
. And set KeyboardShortcuts.Shortcut
KeyboardShortcuts.Shortcut(KeyboardShortcuts.Key.capsLock, modifiers: [])
for it.
However, when running the app, pressing Caps Lock on the keyboard makes nothing happen...
How can I listen for the Caps Lock key event so that I can further override the default behaviour of pressing Caps Lock in macOS?
KeyboardShortcuts version: 1.16.1
Codes to reproduce:
App.swift:
import KeyboardShortcuts
import SwiftUI
@main
struct CapslockTestApp: App {
@StateObject private var appState = AppState()
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
@MainActor
final class AppState: ObservableObject {
init() {
KeyboardShortcuts.setShortcut(
KeyboardShortcuts.Shortcut(KeyboardShortcuts.Key.capsLock, modifiers: []),
for: .my_capslock)
KeyboardShortcuts.onKeyDown(for: .my_capslock) {
print("capslock down")
}
KeyboardShortcuts.onKeyUp(for: .my_capslock) {
print("capslock up")
}
}
}
extension KeyboardShortcuts.Name {
static let my_capslock = Self("my_capslock", default: .init(KeyboardShortcuts.Key.capsLock))
}
ContentView.swift:
import KeyboardShortcuts
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
SettingsView()
}
.padding()
}
}
struct SettingsView: View {
var body: some View {
Form {
KeyboardShortcuts.Recorder("My Caps Lock:", name: .my_capslock)
}
.padding()
}
}
Metadata
Assignees
Labels
No labels