Notification de NSArrayController ?

aranaudaranaud Membre
02:03 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
    02:03 modifié #2
    Tu peux essayer de voir du côté de la classe NSController (méthodes objectDidBeginEditing:,objectDidEndEditing:,etc...). :o
  • aranaudaranaud Membre
    02:03 modifié #3
    Ok, merci.
  • elfelf Membre
    02:03 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
    02:03 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.