NSEvents даже не достигает окна?

У меня странная проблема, когда я не получаю keyDown, mouseDown и др. в моем NSViewController. Фактически, вместо этого Mac издает звуковой сигнал (тот же звук, что и NSBeep()), когда я нажимаю клавишу. Я даже зашел так далеко, что заменил корневое окно своего приложения подклассом, чтобы увидеть, получает ли оно события, а это не так. Кто-нибудь знает, что я делаю неправильно?


person PopKernel    schedule 05.07.2017    source источник
comment
Как создается и отображается ваше окно? Ключ сделан? Может ли он вообще стать ключевым? Это без границ?   -  person Ken Thomases    schedule 05.07.2017
comment
Вам нужно сделать свой контроллер представления NSWindowDelegate, переопределить метод viewWillAppear и добавить view.window?.delegate = self. другой вариант — добавить NSEvent.addLocalMonitorForEvents(matching: .keyDown) к вашему контроллеру представления. Чтобы заглушить звук мурлыканья, вам нужно создать подкласс NSView и переопределить метод performKeyEquivalent(with event: NSEvent) и вернуть true.   -  person Leo Dabus    schedule 05.07.2017
comment
stackoverflow.com/a/32447474/2303865   -  person Leo Dabus    schedule 05.07.2017