Petit problème avec une matrice d'images

olofolof Membre
13:49 modifié dans API AppKit #1
Salut à  tous,

cette fois, j'essaye de faire la chose suivante : une fenêtre qui contient une NSMatrix de NSImageCell (3*3). Au démarrage de l'appli, je place une image dans chaque cellule.
Jusque là , tout va bien.

Maintenant, j'aimerais faire une action (changer l'image) quand l'utilisateur clic sur une image.

J'ai fait la chose suivante. Dans ma classe controleur, j'ai créé une méthode :

<br />-(IBAction)clic:(id)sender;<br />


Dans IB, j'ai fait un lien de la matrice à  mon controleur et j'ai fait la connexion sur cette méthode. Si je clic sur une image, ma méthode est bien appelée. J'essaye alors de changer l'image cliquée :

<br />NSCell *cell = [sender selectedCell];<br />[cell setImage:[NSImage imageNamed:@&quot;olof&quot;]];<br />


Et là , rien ne se passe.

Quelle est mon énorme erreur ???

Merci beaucoup !!!

Réponses

  • BruBru Membre
    13:49 modifié #2
    Les NSImageCell composant ta matrice d'image ne sont pas des actionCell, donc, elles ne se "sélectionnent" pas.

    Donc, la méthode selectedCell ne peut pas fonctionner (ça doit renvoyer nil, je pense).

    .
  • olofolof Membre
    13:49 modifié #3
    Juste !

    Mais comment faire alors ?

    Il y a quand même un autre moyen que de déterminer quelle cellule a été cliquée en cherchant sa position dans la fenêtre (NSEvent mouseLocation) ?!?!?
  • mpergandmpergand Membre
    13:49 modifié #4
    Si si, ça marche, mais il faut dans IB choisir le mode radio pour le NSMatrix !

    <br />- (IBAction)clic:(NSMatrix*) matrix<br />{<br />//	NSLog(@&quot;selected %@&quot;,[matrix selectedCell]);<br />	[[matrix selectedCell]setImage:[NSImage imageNamed:@&quot;olof&quot;]];<br />	[matrix setNeedsDisplay];<br />}<br />
    
  • olofolof Membre
    13:49 modifié #5
    Merci mpergand ! C'était donc ça !
Connectez-vous ou Inscrivez-vous pour répondre.