Вот мой код, упрощены для краткости:Невозможно получить события мыши, чтобы зарегистрироваться в обычае NSViewController
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
var fooController: FooController!
func applicationDidFinishLaunching(aNotification: NSNotification) {
self.fooController = FooController(frame: self.window.frame)
self.window.contentViewController = self.fooController
self.window.makeFirstResponder(self.fooController)
}
}
class FooController: NSViewController {
override func mouseUp(theEvent: NSEvent) {
print("foo")
}
override func keyUp(theEvent: NSEvent) {
print("bar")
}
}
Мои MainMenu.xib
имеет одно окно, которое вы можете видеть, указанным выше в AppDelegate.
Когда я нажимаю кнопку на клавиатуре, я вижу «панель» в консоли. Когда я нажимаю на мышь, я ничего не вижу. Как только я нажимаю на мышь, никаких дополнительных ключевых событий не регистрируются.
Что мне не хватает? Почему события мыши крадут цепочку ответчиков и куда они идут?
Щелчок мышью может изменить первого ответчика. Прочитайте следующее: [Обзор событий мыши] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/HandlingMouseEvents/HandlingMouseEvents.html#//apple_ref/doc/uid/10000060i-CH6 -SW15) – Willeke