ComboBox - Comment binder la sélection ?

LeChatNoirLeChatNoir Membre, Modérateur
juillet 2006 modifié dans API AppKit #1
Slt !
J'ai une combo bindée à  un arraycontroller. Lui même, bindé à  un NSMutableArray rien qu'à  moi.

Pas de pb, ca roule. Quand j'ajoute un élément à  mon tableau, il apparait bien dans la liste de la combo.

Seulement voilà . J'aimerai pouvoir indiquer à  ma combo que l'objet à  afficher a changé et ca par bindings bien sûr (quand la modification a lieu programmatiquement bien sûr...)

Mais comment faire ? Merci !

Réponses

  • muqaddarmuqaddar Administrateur
    03:03 modifié #2
    Salut,

    Ext-ce que un :
    [self willChangeValueForKey:@myArrayKey];
    ici mon code qui change le contenu du mutable array
    [self didChangeValueForKey:@myArrayKey];

    ne réglerait pas l'affaire ?

    (mais je suis pas sur d'avoir saisi ton pb puisque tu dis que quand tu ajoutes un élément au tableau, la combo se met bien à  jour).
  • AliGatorAliGator Membre, Modérateur
    03:03 modifié #3
    Ou alors changer la valeur par KVC ([tt]setValue: forKey:[/tt]) pour que le mécanisme des bindings fonctionne, et non pas par tout autre moyen (_val = machin)
  • LeChatNoirLeChatNoir Membre, Modérateur
    03:03 modifié #4
    Salut !

    En fait, si j'ajoute des objets à  mon tableau, le arraycontroller le détecte et on retrouve bien ça dans la combo (si je déplie la combo, je voit tous mes item).

    Par contre, l'item sélectionné dans la combo (ce qu'affiche la combo) reste sur le premier item inséré lors d'un init quelconque...
    Je peux pas préciser plus dans l'immédiat car je suis pas sur mon mac :-( Mais j'ai cru voir qu'on pouvait binder la propriété "Value" d'une combo. Mais je me demandais à  quoi la binder....
  • LeChatNoirLeChatNoir Membre, Modérateur
    03:03 modifié #5
    Bon ben j'ai trouvé finalement !
    J'ai simplement bindé la propriété "Value" à  un attribut de mon controller qui est l'objet sélectionné en cours.

    [remoteCombo bind:@value toObject:remoteFolderCtrl withKeyPath:@currentBrowsedNode.nodeData.path options:nil];

    Merci de votre aide et a+ !
Connectez-vous ou Inscrivez-vous pour répondre.