NSPopUpButton et action associée

RocouRocou Membre
04:39 modifié dans API AppKit #1
Bonjour,

je voudrais déclencher une action quand un utilisateur fait un choix dans un NSPopUpButton.
Tout fonctionne sauf que l'élément sélectionné ne correspond pas au choix de l'utilisateur. C'est l'ancienne sélection qui est prise en compte.
Voici un bout de code de mon IBAction:
NSMenu* monNSPopupMenu = [monNSPopup menu];<br />NSString *chauffeurid = [[NSString alloc] initWithFormat:@&quot;%d&quot;,[[monNSPopupMenu itemAtIndex:[monNSPopup indexOfSelectedItem]]&nbsp; tag]];

Réponses

  • CéroceCéroce Membre, Modérateur
    mai 2009 modifié #2
    J'ai fait un petit essai, et euh, ben ça marche:

    <br />- (IBAction) chauffeur:(id)sender<br />{<br />	NSLog(@&quot;indexOfSelectedItem = %i&quot;, [sender indexOfSelectedItem]);<br />	NSLog(@&quot;titleOfSelectedItem = %@&quot;, [sender titleOfSelectedItem]);<br />	NSLog(@&quot;tag = %i&quot;, [[sender selectedItem] tag]);<br />}<br />
    


    Tu as un problème autre part.
    Décompose ton code avec des variables intermédiaires et vérifie au débogueur, tu vas vite trouver.
  • 04:39 modifié #3
    Le problème vient du fait que Rocou utilise le NSMenu attaché au NSPopUpButton pour récupérer le tag du NSMenuItem selectionné au lieu de passer directement par NSPopUpButton.

    Donc, à  utiliser : Le code de Céroce -> selectedItem + tag
  • CéroceCéroce Membre, Modérateur
    04:39 modifié #4
    dans 1241527791:

    Le problème vient du fait que Rocou utilise le NSMenu attaché au NSPopUpButton pour récupérer le tag du NSMenuItem selectionné


    Et ça, ça ne marche pas ? C'est vrai que c'est étrange. Le menu est copié par le NSPopUpMenu, ou un truc du genre ?
  • RocouRocou Membre
    04:39 modifié #5
    dans 1241530917:

    dans 1241527791:

    Le problème vient du fait que Rocou utilise le NSMenu attaché au NSPopUpButton pour récupérer le tag du NSMenuItem selectionné


    Et ça, ça ne marche pas ? C'est vrai que c'est étrange. Le menu est copié par le NSPopUpMenu, ou un truc du genre ?


    Le problème est le même.
    A ce niveau, je ne veux pas utiliser le "sender". En l'utilisant, ça fonctionne mais en allant chercher directement les valeurs dans le NSPopup, ce sont les anciennes valeurs qui sont récupérées et pas la sélection de l'utilisateur.

  • CéroceCéroce Membre, Modérateur
    04:39 modifié #6
    Je viens d'essayer en créant une outlet et en l'utilisant à  la place de sender, et je t'assure que ça fonctionne.
  • RocouRocou Membre
    04:39 modifié #7
    dans 1241533169:

    Je viens d'essayer en créant une outlet et en l'utilisant à  la place de sender, et je t'assure que ça fonctionne.

    B)

    Bon, va falloir que je scrute mon code de plus près. En tout cas, merci pour le temps passé, au moins, je sais que ça peux fonctionner!
Connectez-vous ou Inscrivez-vous pour répondre.