2

我正在尝试为我的 OSX 应用程序获取自定义光标。在过去的几个小时里,我读到过这样做没有成功。所以我已经转移到最简单的方面,只需将当前光标设置为十字准线光标,在一个绝对没有别的项目中。

这是最基本的设置,它不会改变我的光标。使用 XCode,我创建了一个新的 Cocoa 项目。我编写的唯一一段代码是以下函数中的一行。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
        [[NSCursor crosshairCursor] set];
}

这不会改变光标,这可能意味着我错过了一些非常基本的东西,但无法为我的生活弄清楚。

我尝试了很多变体,使用 NSCursor -push 方法来更改当前光标,但它不起作用。我还尝试放置一个 NSButton,然后按照此处建议的不同答案进行操作(其中按钮的类型为 NSButton *):

[button addCursorRect:[button bounds] cursor:[NSCursor crosshairCursor]];

我以前为 iPhone 写过几个应用程序,但从来没有为 Mac 写过,但看起来很相似。我错过了一些无可救药的愚蠢吗?我也尝试过使用 addCursorRect:cursor: 方法,但我不确定我做对了。目前尚不清楚应该调用什么函数以及从哪里调用它。

一旦我弄清楚如何显示任何不同的光标,然后我想继续为光标制作我自己的图像。

谢谢!

4

1 回答 1

2

我不知道为什么,但是在 applicationDidFinishLaunching 中设置光标似乎不起作用。(我刚试过。)但如果你稍后再做,它会起作用,比如点击一个按钮,或者如果你希望它在启动时发生,可以使用计时器。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:nil repeats:NO];
}

-(void)timer:(id)foo
{
    [[NSCursor pointingHandCursor] set];
}
于 2011-08-05T14:49:22.000 回答