2011-09-21 2 views
1

J'essaie de changer le curseur quand il passe sur une vue mais je suppose que je ne le code pas correctement car il ne fonctionne pas.Modification de NSCursor pour une vue spécifique

j'ai une classe AppController et dans son fichier .m Je cette

- (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]; 
} 

Répondre

1

Vous avez oublié d'appeler [handCursor setOnMouseEntered:YES]. Sinon, NSCursor ignorera l'événement mouseEntered: envoyé.

+0

J'ai essayé ça et il m'a toujours dit 'pas de soupe pour vous' ... – PruitIgoe

6

L'appel de addCursorRect: à partir de awakeFromNib ne fonctionnera pas. Il doit être appelé à partir d'un override de resetCursorRects:, qui est probablement appelé à un moment donné et qui écrase le rect de votre installation.

Questions connexes