更改特定视图的NSCursor

时间:2011-09-21 16:33:40

标签: objective-c nscursor

我试图在光标经过视图时更改光标,但我想我没有正确编码,因为它不起作用。

我有一个appcontroller类,在它的.m文件中我有这个

- (void) awakeFromNib { 

      //set up the cursors
      NSCursor * handCursor = [NSCursor closedHandCursor];

      //make a box
      Box* newBox = [[Box alloc] initWithFrame:NSMakeRect(10.0, 10.0, 100.0, 100.0)];
      //set up the rect for the cursor change
      NSRect rectForCursor = [newBox frame];
      [newBox addCursorRect:rectForCursor cursor:handCursor];
      //add box to main win
      [[mainWin contentView] addSubview:newBox];
}

2 个答案:

答案 0 :(得分:6)

从awakeFromNib中调用addCursorRect:将无效。它必须在resetCursorRects:的覆盖范围内调用,这可能会在某个时刻被调用并破坏你设置的矩形。

答案 1 :(得分:1)

您忘记致电[handCursor setOnMouseEntered:YES]。否则,NSCursor将忽略发送的mouseEntered:事件。