在OSX命令行应用程序中为键盘事件注册本地事件监视器

时间:2016-03-19 07:44:16

标签: objective-c nsevent

我目前正在开发一个命令行应用程序,该应用程序主要用C语言编写,部分用C语言编写。到目前为止,它遵循纯粹的程序方法。出于某种原因,我现在试图将这种程序化方法转移到基于通知和事件的架构上。与此同时,我引入了面向对象的设计(但这不是主题)。我使用了runloop和FSEvent API,希望我找到一些解决某些问题的好方法。我(希望)现在的最后一个问题是"用户互动"。应用程序应该监听用户的按键响应。 所以经过一些阅读后我转向NSEvent API并将以下行添加到我的main.m:

  [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event){NSLog(@"Key pressed"); return event;}];

它编译得很好,但不会触发事件。 所以,我只是问自己这些事件是否实际上是为命令行应用程序触发的,还是我必须调用某些NSApplication类或其他依赖项才能获得此功能。

我熟悉C / C ++,但我对cocoa框架很陌生。如果我的问题很愚蠢,那么道歉。

最诚挚的问候 诺贝特

0 个答案:

没有答案