1

我想制作一个自定义面板,显示当前光标位置的缩放。就像“Sip”一样。我在网上搜索了示例,但没有找到任何具体的内容。

我找到了NSEvent'saddGlobalMonitorForEventsMatchingMask:handler:addLocalMonitorForEventsMatchingMask:handler:方法。现在我可以设置窗口的框架原点。但我不确定这是否真的是正确的解决方案。

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

4

1 回答 1

1

基本上就是这样。

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

Quartz Event Taps 在其他方面是一样的,但可能会稍微快一些。

如果您使用它,请务必使用该功能CGPoint CGEventGetUnflippedLocation(CGEventRef aCGEvent)

如: CGPoint eventLocation = CGEventGetUnflippedLocation(aCGEvent);

这将确保您的 y 坐标像 Cocoa 的其余部分一样位于左下角。否则使用它的兄弟姐妹CGEventGetLocation(),由于一些奇怪的命名原因并不表示它返回翻转坐标。(但文档确实说明了这一点)

于 2013-06-03T03:15:19.187 回答