receive keyboard events without being key window appkit
To receive keyboard events without being the key window in AppKit, you can use the NSEvent class's class method addGlobalMonitorForEventsMatchingMask:handler:. This method allows you to add a global event monitor for specific types of events, including keyboard events.
Here's an example of how to use addGlobalMonitorForEventsMatchingMask:handler: to receive keyboard events:
import Cocoa
func handleKeyEvent(event: NSEvent) {
// Handle the key event here
print("Received key event: \(event.keyCode)")
}
// Add a global event monitor for key events
NSEvent.addGlobalMonitorForEvents(matching: .keyDown, handler: handleKeyEvent)
// Run the main event loop
NSApplication.shared.run()
In this example, the handleKeyEvent function is called whenever a key down event occurs, regardless of whether your app is the key window or not.
Note that you need to run the main event loop using NSApplication.shared.run() to keep your app active and receive the events
原文地址: https://www.cveoy.top/t/topic/i0aU 著作权归作者所有。请勿转载和采集!