objective-c - 如何查找鼠标是否在 View 上

标签 objective-c cocoa macos nsview

我需要确定鼠标位置是否在 NSView 的矩形内。

我会使用 NSPointInRect(point, rect),但我需要将矩形坐标转换为屏幕坐标,但我不确定如何操作。任何帮助将不胜感激!

最佳答案

像这样的东西应该适合你:

NSView* myView; // The view you are converting coordinates to
NSPoint globalLocation = [ NSEvent mouseLocation ];
NSPoint windowLocation = [ [ myView window ] convertScreenToBase: globalLocation ];
NSPoint viewLocation = [ myView convertPoint: windowLocation fromView: nil ];
if( NSPointInRect( viewLocation, [ myView bounds ] ) ) {
    // Do your thing here
}

我个人并没有使用这么多局部变量,但希望这能让这个例子更清晰。

关于objective-c - 如何查找鼠标是否在 View 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630509/

相关文章:

objective-c - isKindOfClass 意外返回 NO

java - 如何修复此 .bat 文件以便它可以在 macOS 中运行?

ios - 正确地将 info.plist 条目转换为 NS* 类型

ios - 在后台使用 NSURLSession 一个一个地下载 100 个文件的列表

objective-c - 在 Mac OS X 中以编程方式更改窗口高度超过屏幕高度

objective-c - 如何激活没有标题栏的窗口

c - 如何使用 C 语言访问命令行应用程序包

macos - 无法在 osx yosemite 上进行枪战。 undefined symbol

objective-c - 如何使垃圾箱接受 cocoa 应用程序的掉落?

objective-c - 在沙箱中重新启动后访问同一文件