【发布时间】:2017-05-08 13:00:27
【问题描述】:
在我的 macOS 应用程序中,我有一个自定义 WebView。当用户将鼠标光标移动到 WebView 网页中的不同元素上时,例如文本、链接等(我认为这些元素是作为子视图实现的),光标会根据元素的类型自动更新。
我的要求是我想为 WebView 设置一个自定义光标(如果可能的话,甚至为我的整个应用程序),并且不要让它发生任何变化,至少在我以编程方式在代码的其他部分中更改它之前。我尝试在 AppDelegate 的 applicationDidFinishLaunching: 方法中设置 NSCursor,但它会立即重置。
我尝试了许多解决方案,例如设置NSTrackingArea,将disableCursorRects 发送到我的NSApplication 和NSWindow,甚至监控光标更新事件,但都没有成功。
那么有没有办法在我的应用程序中禁用所有 NSCursor 更新?我会将其设置为 applicationDidFinishLaunching: 中的自定义光标,并希望它在应用程序运行时保持不变,或者我在代码中更改它。
【问题讨论】:
-
我觉得 window.disableCursorRects() 应该适用于此。如果没有,这似乎是一个 Apple 错误。
标签: macos cocoa webview nscursor