KVO Manuel

fouffouf Membre
08:00 modifié dans API AppKit #1
Bonjour à  tous.

Dans l'appli sur laquelle je travaille, je suis en train de mettre en place un inspecteur basé entre autre sur les bindings. Le problème est que j'ai bindé le controle (en l'occurence le NSTextField) sur une clé qui est recalculé periodiquement et qui donc, pas conséquence n'a pas d'accesseur. Ce que je voudrais c'est trouver une méthode pour que l'observeur (ici le textField) soir notifié du changement de la valeur de la clé.

Grâce à  GBD j'ai identifié une fonction qui semble convenir. Il s'agit de _NSSetObjectValueAndNotify. Le problème c'est que je n'arrive pas à  savoir quels sont les arguments que cette fonction prend.

Y a-t-il un autre moyen de faire ce que je veux (je connais didChangeValueForKey: mais comme je n'arrive pas non plus à  récupérer la liste des observers) ? Sinon, quels sont les arguments que prends _NSSetObjectValueAndNotify ?

Merci d'avance,
:fouf):

PS : Il ya une méthode qui marche mais que je n'aime pas et qui est de mettre des setters pour ces clés calculées.

Réponses

  • 08:00 modifié #2
    Tu n'es obligé de mettre un setter. Si ta clé est calculée en fonction d'autres clés, il y a la possibilité d'avoir des clés dépendantes (à  mettre dans le initialize):
    [tt]+ (void)setKeys:(NSArray *)keys triggerChangeNotificationsForDependentKey:(NSString *)dependentKey[/tt]

    Dès qu'une clé "parent" est modifiée, une notification de changement de la clé dépendante est automatiquement envoyée.
  • fouffouf Membre
    08:00 modifié #3
    Mmm...ca serait une solution, sauf que ....

    Cette clé en question dépends de la valeur d'autres clés, mais qui en plus appartiennent à  d'autres objets.
    Sinon, merci beaucoup, j'aurais appris quelquechose aujourd'hui ;)
Connectez-vous ou Inscrivez-vous pour répondre.