NSEvent addGlobalMonitorForEventsMatchingMask无法在CLI应用程序上运行

时间:2014-02-19 23:03:23

标签: objective-c cocoa command-line appkit nsevent

我是Obj-C和Cocoa的新手。我正在尝试开发一个非常简单的命令行应用程序,在启动等待几个全局鼠标事件,并在完成时退出。我已经正确地实现了一个NSRunLoop以避免cli应用程序立即完成,但我似乎无法掌握事件监听鼠标事件。

我正在使用此代码段:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *mouseEvent) {
    NSLog(@"Mouse moved: %@", NSStringFromPoint([mouseEvent locationInWindow]));
}];

我是我的CLI应用程序它只是不会触发任何东西,虽然它可以正确编译,而它可以正常工作如果粘贴在空白的Cocoa App中,在appDelegate类的applicationDidFinishLaunching方法中

我错过了什么?谢谢!

pd:我不是100%确定它是我需要的CLI。我也可以是一个不可见的或无头应用程序,没有窗口,菜单项或任何相关的东西,只是一个运行几秒钟直到符合标准的过程。

1 个答案:

答案 0 :(得分:2)

我猜你需要一个正在运行的NSApplication才能使用NSEvent。我相信你可以做一个无头的,无图标的NSApp。

相关问题