Локальный монитор NSEvent выдает неверный код
Я использую местный монитор для наблюдения за ключевыми событиями. Тем не менее, я получаю неправильный код клавиши, когда модификаторы ⌥ и ⌥ активны, и одновременно нажимается клавиша с кодом 42. Код события в событии - 8, что на моей клавиатуре - C. Монитор событий используется в подклассе NSTextField для перехвата ключевых событий.
Пока это единственный случай, когда я получаю неправильный код ключа. Я также попытался использовать CGEventTap, чтобы воспроизвести это, но код ключа всегда корректен при использовании CGEventTap.
Кто-нибудь когда-либо испытывал это? Это известная ошибка?
import Foundation
import Cocoa
class FooTextField : NSTextField {
func initMonitor() {
NSEvent.addLocalMonitorForEvents(matching: [.keyUp, .keyDown, .flagsChanged], handler: onKeyEvent)
}
private func onKeyEvent(_ e: NSEvent) -> NSEvent? {
//prints 8 when key with keycode 42 is pressed and (⌥,⌘) are active.
//the textfield seems to receives the correct keycode since a # appears for German keyboards
print(e.keyCode)
return e
}
}