这是我的代码,为简洁起见进行了简化:
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 中看到它。
当我按下键盘上的按钮时,我会在控制台中看到“栏”。当我单击鼠标时,我什么也看不到。单击鼠标后,将不再注册任何键事件。
我错过了什么?为什么鼠标事件会偷走响应者链,它要去哪里?