gpt4 book ai didi

macos - 如何禁用我的应用程序中的所有 NSCursor 更新?

转载 作者:行者123 更新时间:2023-12-03 16:20:06 26 4
gpt4 key购买 nike

在我的 macOS 应用程序中,我有一个自定义 WebView。当用户将鼠标光标移动到 WebView 网页中的不同元素(如文本、链接等)(我认为它们是作为 subview 实现的)上时,光标会根据元素的类型自动更新。

我的要求是我想为 WebView 设置一个自定义光标(如果可能的话甚至为我的整个应用程序),并且不让它发生任何变化,至少直到我在代码的其他部分以编程方式更改它为止。我尝试在 AppDelegate 的 applicationDidFinishLaunching: 方法中设置 NSCursor,但它会立即重置。

我尝试了很多解决方案,例如设置 NSTrackingArea、将 disableCursorRects 发送到我的 NSApplicationNSWindow,甚至监视游标更新事件,但没有取得太大成功。

那么有没有办法禁用我的应用程序中的所有 NSCursor 更新?我会将其设置为 applicationDidFinishLaunching: 中的自定义光标,并希望它在应用程序运行期间保持不变,或者我在代码中更改它。

最佳答案

您可以在 WebView 中使用用户样式表来设置 html 元素的默认光标。

WebPreferences *preferences = [[[WebPreferences alloc] initWithIdentifier:@"TestIdentifier"] autorelease];

NSURL *stylesheetURL = [[NSBundle bundleForClass:[self class]] URLForResource:@"yosemite-stylesheet" withExtension:@"css" subdirectory:@"Welcome"];

preferences.userStyleSheetEnabled = YES;
preferences.userStyleSheetLocation = stylesheetURL;


self.webView.preferences = preferences;

关于macos - 如何禁用我的应用程序中的所有 NSCursor 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com