objective-c - 如何在 Mac OS X 中获取相对于窗口的光标位置?

标签 objective-c macos cocoa cursor-position

我可以使用 [NSEvent mouseLocation] 获取光标的位置,但这会给我屏幕坐标。当光标在 View 中时,如何获取它相对于 View 的坐标?我搜索了 Apple 文档,但找不到答案。

如果它有所作为,我将希望不断检索鼠标位置,因为它将在每个帧更新中使用。

最佳答案

为了完整起见,有一种直接的方法可以获取鼠标在窗口坐标中的位置(使用 NSWindow)。根据您的窗口布局,这可能等同于 View 的坐标。

NSWindow *myWindow;
NSPoint mousePos;
...
mousePos = [myWindow mouseLocationOutsideOfEventStream];

返回的坐标在窗口坐标中,因此如果鼠标位于窗口左侧/下方,则返回负值。如果鼠标位于窗口右侧/上方,则坐标将超出窗口大小。

关于objective-c - 如何在 Mac OS X 中获取相对于窗口的光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7463958/

相关文章:

objective-c - 如何避免 xcode 4.5 w/o ARC 出现僵尸错误?

c++ - 体系结构 x86_64 :"_glutInit"的 undefined symbol ,从 Mac 上的 :_main in main. o/Netbeans 引用

python - 在 mac 上覆盖 python 3.x 中的打印行

objective-c - 如何以编程方式创建多个窗口?

cocoa - 使用 "Tab"键从 NSTextField 移动到 NSMatrix

ios - 在 ARC 下,IBOutlets 应该强还是弱?

objective-c - 单例中的 NSMutableArray。强属性还是弱属性?

c++ - OpenCV - 仅适用于 g++。不是 gcc 或 nvcc

objective-c - 使用自动布局的 UIScrollView 内的完全响应式 UIView

iphone - 如何将 bool 值存储到 NSArray?