我想制作一个自定义面板,在当前光标位置显示缩放。 比如'Sip'就好。 我在网上搜索了一些例子,但没有找到具体的内容。
我找到了NSEvent
的{{1}}和addGlobalMonitorForEventsMatchingMask:handler:
方法。
现在我可以设置窗口的框架原点。
但我不确定这是否真的是正确的解决方案。
有更好的方法吗? 有人能指出我的一些示例代码吗?
答案 0 :(得分:1)
基本上就是这样。
您还可以使用Quartz事件点击功能系列CGEventTap,因为它可以在Mac应用程序切换器和Exposé或Mission Control或Dashboard等事件期间提供更多响应。但是,设置起来有点困难,并且使用C回调方法,对某些事情使用起来有点困难。
Quartz Event Taps在其他方面是相同的,但可能稍快一些。
如果您使用它,请务必使用函数CGPoint CGEventGetUnflippedLocation(CGEventRef aCGEvent)
如:
CGPoint eventLocation = CGEventGetUnflippedLocation(aCGEvent);
这将确保你的y坐标像Cocoa的其余部分一样左下角。
否则使用它的兄弟CGEventGetLocation()
,由于一些奇怪的原因,蹩脚的命名并不表示它返回翻转的坐标。 (但文档确实说明了这一点)