Изменение NSCursor для конкретного представления - PullRequest
1 голос
/ 21 сентября 2011

Я пытаюсь изменить курсор, когда он проходит через представление, но я думаю, что я не кодирую его правильно, так как он не работает.

У меня есть класс 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 ]

6 голосов
/ 26 октября 2011

Вызов addCursorRect: изнутри awakeFromNib не будет работать.Он должен вызываться из-за переопределения resetCursorRects :, которое, вероятно, вызывается в какой-то момент и забивает прямоугольник вашей установки.

1 голос
/ 21 сентября 2011

Вы забыли позвонить [handCursor setOnMouseEntered:YES]. В противном случае NSCursor будет игнорировать отправленное им событие mouseEntered:.

...