我是 Obj-C 和 Cocoa 的新手。我正在尝试开发一个非常简单的命令行应用程序,它在启动时等待一些全局鼠标事件,并在完成后退出。我已经正确实现了一个 NSRunLoop 以避免 cli 应用程序立即完成,但我似乎无法掌握监听鼠标事件的事件。
我正在使用这个片段:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *mouseEvent) {
NSLog(@"Mouse moved: %@", NSStringFromPoint([mouseEvent locationInWindow]));
}];
我是我的 CLI 应用程序,尽管它可以正确编译,但它根本不会触发任何东西,而如果粘贴在 appDelegate 类的 applicationDidFinishLaunching 方法中的空白 Cocoa 应用程序中,它就可以正常工作。
我错过了什么?谢谢!
pd:我不是 100% 确定这是我需要的 CLI。我也可以是一个不可见或无头的应用程序,没有窗口、菜单项或任何相关的东西,只是一个运行几秒钟直到满足条件的进程。