2011-09-30 177 views
0

我想在我的游戏中使用nscursor使用自定义光标。我用下面的代码如何使用NSCursor来显示自定义光标

 

//While initializing openglview 
    mCustomCursor = [[NSCursor alloc] initWithImage:image hotSpot:NSZeroPoint]; 
    [image release]; 
[mCustomCursor set] 
 

我设置光标RECT在resetcursorrect方法

 
 
- (void)resetCursorRects 
{ 

    [self addCursorRect:currentViewPortRect cursor:[NSCursor currentCursor]]; 

} 
 

出现自定义光标,这是不相符的,有时它切换回系统光标(警报),有时它回来了,有时不。它很混乱。我不确定我是否应该使用'setOnMouseEntered','pop'。什么是使用nscursor并动态改变它的标准方式。

回答

1

您正在将光标更改为当前光标,而光标根本不会改变它。要显示您自己的自定义光标,您必须在创建光标rect时传递自定义光标。

+0

同意,但是什么时候应该使用[NSCursor pop],[NSCursor push]?如果我用[NSCursor推]我可以用'[自addCursorRect:currentViewPortRect光标:[NSCursor currentCursor];' – shakthi

+1

@shakthi:你一般不应该,而且同样适用于' - [NSCursor集]'。当使用游标矩形时,您不需要也不应该手动更改游标 - 这就是游标矩形的用途。不要将'currentCursor'传递给'addCursorRect:cursor:';添加游标矩形的目的是在用户经过时更改游标 - 将当前游标更改为当前游标是没有意义的。只需将光标rect与您的自定义光标相加即可。 –

+0

非常感谢。我一直在努力挣扎一个星期。 – shakthi