objective-c - 如何在自定义 NSView 中设置光标?

标签 objective-c cocoa macos nsview nscursor

我有一个自定义 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/

相关文章:

iphone - 可以使用导航栏返回到上一个 View 而不丢失 View 的数据吗?

objective-c - 从 NSArray 以字节形式检索 UIImage - iOS

cocoa-touch - ViewController.h 和 ViewController.m 前缀

macos - 根据总线位置 ID 打开 FTDI 设备

reactjs - Microsoft 认知语音 SDK(js) 在 safari 上运行不佳

objective-c - swift 。无法构建 Objective-C 模块

ios - 尝试通过 ACAccount 和 SLRequest 访问 Facebook 时的 invalid_token

cocoa - 以编程方式启用(或禁用)应用程序的 AppleScript 支持

cocoa - 在Cocoa中导入, '"'和 '<'之间的区别

macos - 如何知道 Cocoa 中何时连接了 HID USB/蓝牙设备?