簡潔にするために簡略化した私のコードは次のとおりです。
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")
}
}
MyMainMenu.xib
には、上記の AppDelegate で参照できる単一のウィンドウがあります。
キーボードのボタンを押すと、コンソールに「バー」が表示されます。マウスをクリックしても何も表示されません。マウスをクリックすると、それ以上のキー イベントは登録されません。
私は何が欠けていますか?マウス イベントがレスポンダー チェーンを奪うのはなぜですか? また、どこに行くのでしょうか?