我有一个自定义 View ,需要根据鼠标所在的位置设置光标。我使用 [NSCursor set]
在 mouseMoved:
处理程序中设置光标。这适用于 OS X 10.5,但大多数情况下不适用于 10.6。有时光标会改变,但通常不会。
问题是我必须设置光标以响应 mouseMoved:
事件,我无法注册光标矩形或使用 NSTrackingArea
和 updateCursor:
事件。我正在为 NetSurf 浏览器开发 Cocoa 前端。引擎期望来自前端的鼠标移动事件。如果光标位于链接或需要不同光标的内容上,引擎会从前端调用函数来设置新光标。
关于如何在 Snow Leopard 上实现此功能有什么想法吗?
最佳答案
通常,您应该使用 CursorRects 来避免其他 View 更改您的光标。但由于您不能这样做,因此您可以通过在鼠标进入 View 时在窗口级别禁用 CursorRects 来防止它们的干扰。鼠标退出 View 时,为窗口启用后向光标矩形。
关于objective-c - 如何在自定义 NSView 中设置光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158125/