我想创建一个自定义面板,该面板显示当前光标位置的缩放比例。
例如“ Sip”。
我在网上搜索了示例,但没有找到任何具体的示例。
我发现了NSEvent
的addGlobalMonitorForEventsMatchingMask:handler:
和addLocalMonitorForEventsMatchingMask:handler:
方法。
现在,我可以设置窗口的框架原点。
但是我不确定这是否是正确的解决方案。
有一个更好的方法吗?
谁能指出我一些示例代码?
最佳答案
基本上就是这样。
您还可以使用Quartz Event Tap功能系列CGEventTap,因为它将在Mac应用程序切换器和Exposé或Mission Control或仪表板等事件期间提供更多响应。但是,设置起来有点困难,并且使用了C回调方法,在某些事情上使用起来有点困难。
石英事件分接头在其他方面是相同的,但可能会稍快一些。
如果使用它,请确保使用功能CGPoint CGEventGetUnflippedLocation(CGEventRef aCGEvent)
如:
CGPoint eventLocation = CGEventGetUnflippedLocation(aCGEvent);
这样可以确保您的y坐标像其他可可粉一样位于左下角。
否则,使用它的同级CGEventGetLocation()
,由于命名混乱的某种奇怪原因,并不表示它返回了翻转的坐标。 (但文档确实说明了这一点)