NSWindow附加到光标

时间:2012-10-18 08:12:01

标签: objective-c xcode macos cocoa nscursor

我想制作一个自定义面板,在当前光标位置显示缩放。 比如'Sip'就好。 我在网上搜索了一些例子,但没有找到具体的内容。

我找到了NSEvent的{​​{1}}和addGlobalMonitorForEventsMatchingMask:handler:方法。 现在我可以设置窗口的框架原点。 但我不确定这是否真的是正确的解决方案。

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

1 个答案:

答案 0 :(得分:1)

基本上就是这样。

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

Quartz Event Taps在其他方面是相同的,但可能稍快一些。

如果您使用它,请务必使用函数CGPoint CGEventGetUnflippedLocation(CGEventRef aCGEvent)

如:  CGPoint eventLocation = CGEventGetUnflippedLocation(aCGEvent);

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