1

我目前正在学习目标 c,并且正在尝试编写一些简单的应用程序来帮助我学习。现在,我正在尝试制作一个应用程序,让我可以测量屏幕上任何位置的某个区域。(类似于此:https ://addons.mozilla.org/de/firefox/addon/measureit/ )

为此,我需要知道如何在屏幕上的任何位置更改光标,而不仅仅是在某个窗口内(我已经让它工作了)。

目前我有一个名为“MyCustomView”的类,它分配给我的主窗口视图。我实现了这样的resetCursorRects方法:

- (void) resetCursorRects {
    [super resetCursorRects];

    NSCursor *myCursor = [NSCursor crosshairCursor];
    CGRect screenRect = [[NSScreen mainScreen] frame];
    [self addCursorRect:screenRect cursor:myCursor];
}

它成功地将我的光标更改为十字准线,但仅在当前窗口内。我希望我的光标在整个屏幕上都发生变化。我怎样才能做到这一点?

谢谢你们的帮助,伙计们!

4

1 回答 1

1

您可以创建 NSCursor 实例,然后调用set方法

[[[NSCursor alloc] initWithImage:[NSImage imageNamed:@"myCursor.png"] hotSpot:NSZeroPoint] set]

但是其他窗口会改变它,所以我认为你需要一个覆盖所有屏幕的 0.0 不透明度的窗口。

您可以通过设置窗口级别来做到这一点。[window setLevel:NSScreenSaverWindowLevel]

于 2012-10-20T17:34:12.100 回答