我想创建一个自定义面板,该面板显示当前光标位置的缩放比例。
例如“ Sip”。
我在网上搜索了示例,但没有找到任何具体的示例。

我发现了NSEventaddGlobalMonitorForEventsMatchingMask:handler:addLocalMonitorForEventsMatchingMask:handler:方法。
现在,我可以设置窗口的框架原点。
但是我不确定这是否是正确的解决方案。

有一个更好的方法吗?
谁能指出我一些示例代码?

最佳答案

基本上就是这样。

您还可以使用Quartz Event Tap功能系列CGEventTap,因为它将在Mac应用程序切换器和Exposé或Mission Control或仪表板等事件期间提供更多响应。但是,设置起来有点困难,并且使用了C回调方法,在某些事情上使用起来有点困难。

石英事件分接头在其他方面是相同的,但可能会稍快一些。

如果使用它,请确保使用功能CGPoint CGEventGetUnflippedLocation(CGEventRef aCGEvent)

如:
 CGPoint eventLocation = CGEventGetUnflippedLocation(aCGEvent);

这样可以确保您的y坐标像其他可可粉一样位于左下角。
否则,使用它的同级CGEventGetLocation(),由于命名混乱的某种奇怪原因,并不表示它返回了翻转的坐标。 (但文档确实说明了这一点)

10-08 10:48