最简单地使用NSCursor set命令

时间:2011-08-05 07:02:57

标签: macos sdk operating-system osx-snow-leopard nscursor

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

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

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

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

我尝试了很多变种,使用NSCursor -push方法来更改当前光标,但它不起作用。我也试过放一个NSButton然后做一个不同的答案建议here(其中按钮的类型是NSButton *):

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

我以前为iPhone写了几个应用程序,但从未用过Mac,但看起来非常相似。我错过了一些无可救药的愚蠢行为吗?我也尝试过使用addCursorRect:cursor:方法,但我不确定我做得对。目前尚不清楚什么功能应该称之为,以及从何处。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

我不确定原因,但在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];
}