4

我编写了一个 Cocoa 程序来在按下按钮后更改光标。具体而言,光标包括图像而不是指针。我使用以下命令设置它:

NSImage *tmpImage = [NSImage imageNamed:@"pointer"];
NSCursor *pointer = [[NSCursor alloc] initWithImage:tmpImage hotSpot:NSMakePoint(10.0, 10.0)];
[pointer set];

这有效并且光标正确更改。但是,此更改并不适用于所有应用程序。例如,当我在幻灯片模式下切换到 Keynote 演示文稿时,光标会变回箭头。当我切换到 PDF 全屏显示进行演示时,光标变为手形(我相信这些是各个应用程序设置的默认光标)。

我的问题是:有什么方法可以覆盖这些,只为所有应用程序保留我的自定义光标?即使在 Keynote 幻灯片放映和 PDF 全屏视图期间,我也想保留更改后的光标。有任何想法吗?

谢谢!

4

1 回答 1

0

无法更改其他应用程序的光标,至少不使用公共 API。

唯一的方法是创建一个自定义的无边框窗口,它只显示光标的图像,然后使用 CoreGraphics API 隐藏光标并在鼠标移动时简单地移动窗口。这大概是 Apple 如何在辅助功能系统偏好设置中打开大光标的方式。

于 2013-06-26T09:08:23.500 回答