Notification de NSArrayController ?

aranaudaranaud Membre
04:39 modifié dans API AppKit #1
Est qu'il y a une fonction toute fait pour savoir si un object de la classe NSArrayController est mis à  jours à  partie de l'interface ?

Réponses

  • Eddy58Eddy58 Membre
    04:39 modifié #2
    Tu peux essayer de voir du côté de la classe NSController (méthodes objectDidBeginEditing:,objectDidEndEditing:,etc...). :o
  • aranaudaranaud Membre
    04:39 modifié #3
    Ok, merci.
  • elfelf Membre
    04:39 modifié #4
    Hm, j'ai justement recherché ça l'autre jour. Je suis tombé sur ça:

    [m_arrayController addObserver:self
    forKeyPath:@arrangedObjects
    options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
    context:NULL
    ];

    Vérifie la doc de addObserver:forKeyPath:options:context:
  • laurrislaurris Membre
    04:39 modifié #5
    dans 1164044910:

    Hm, j'ai justement recherché ça l'autre jour. Je suis tombé sur ça:

    [m_arrayController addObserver:self
    forKeyPath:@arrangedObjects
    options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
    context:NULL
    ];

    Vérifie la doc de addObserver:forKeyPath:options:context:


    Attention ya embrouille avec cette méthode.
    En observant un NSArrayController, on a la possibilité de savoir si quelque chose a changé dans l'objet géré mais par contre on n'obtient aucune info sur le contenu du changement. Les options NSKeyValueObservingNew | Old sont dans ce cas inopérantes.
    (Rien n'est indiqué dans la doc et j'ai mis des mois avant de comprendre alors si je peux éviter à  qqun la même perte de temps ...).

    Pour savoir ce qui a été ajouté, retranché ou sélectionné, la seule façon que je connaisse est d'observer directement la collection gérée par le NSArrayController. Comme ça on récupère toutes les infos dans le "change" dictionary.



Connectez-vous ou Inscrivez-vous pour répondre.