MacOS下的objc开发,需要捕获并处理键盘事件。
在网上查资料/看文档得知键盘事件是NSWindow从系统那里接到后分发给NSView的,跟QT一样重写一下事件函数就行。
但问题是……
新建一个新工程(使用Storyboard)之后,窗体设计那里可以看到自动创建了一个Window Controller和View Controller,有一个匿名的View在里面。其他控件可以直接往View Controller里拖,代码全部可以在ViewController类里实现。
那View的代码在哪呢……
我连这个View的类/变量在哪定义的都找不到……更别说继承类重写keyDown事件了
看到ViewController里面也有个keyDown,重写一下发现根本不触发。
我甚至重写了performKeyEquivalent,一点动静都没有,不执行这个函数。
但是重写mouseDown就有反应……有毒。
在stackoverflow上看到有人说用NSEvent的addLocalMonitorForEvents实现,然后事件是有了,但它是全局事件啊……我只想要一个ViewController下的事件……
问下这键盘事件到底要怎么捕获?