У меня странная проблема, когда я не получаю keyDown, mouseDown и др. в моем NSViewController. Фактически, вместо этого Mac издает звуковой сигнал (тот же звук, что и NSBeep()), когда я нажимаю клавишу. Я даже зашел так далеко, что заменил корневое окно своего приложения подклассом, чтобы увидеть, получает ли оно события, а это не так. Кто-нибудь знает, что я делаю неправильно?
NSWindowDelegate
, переопределить методviewWillAppear
и добавитьview.window?.delegate = self
. другой вариант — добавитьNSEvent.addLocalMonitorForEvents(matching: .keyDown)
к вашему контроллеру представления. Чтобы заглушить звук мурлыканья, вам нужно создать подклассNSView
и переопределить методperformKeyEquivalent(with event: NSEvent)
и вернуть true. - person Leo Dabus   schedule 05.07.2017