Notification. Identification de l'objet qui notifie
Rocou
Membre
Bonjour,
Dans mon code, j'ai une méthode "notif" qui est appelée lorsqu'une notification est envoyée par un objet.
ça fonctionne mais je me suis aperçu qu'une notification est envoyée par tous les objets d'une même classe. Je n'ai pas réussi à éviter cela.
Aussi, dans le code de ma méthode "notif", j'ai tenté de réduire un peu la quantité de ces objets perturbateurs par ce test:
Mais j'aimerais bien pouvoir cibler un outlet lié à un objet précis et non à tout une classe.
Dans mon code, j'ai une méthode "notif" qui est appelée lorsqu'une notification est envoyée par un objet.
ça fonctionne mais je me suis aperçu qu'une notification est envoyée par tous les objets d'une même classe. Je n'ai pas réussi à éviter cela.
Aussi, dans le code de ma méthode "notif", j'ai tenté de réduire un peu la quantité de ces objets perturbateurs par ce test:
if ([[[aNotification object] className] isEqualToString:@"NSClipView"])
Mais j'aimerais bien pouvoir cibler un outlet lié à un objet précis et non à tout une classe.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux faire comme ça tout simplement.
- (void)addObserver:(id)notificationObserver selector:(SEL)notificationSelector name:(NSString *)notificationName object:(id)notificationSender
si tu spécifies un objet, les notifications seront limitées à cet objet.
ça j'ai essayé mais je n'entre jamais dans mon test. Tout ce passe comme si mon outlet n'était pas relié à l'objet qui lance la notification.
J'initialise ma notification comme ceci:
et monScroll est déclaré comme ceci:
et MaScrollView est une classe de type NSScrollView que j'ai liée sous IB à l'objet NSScrollView dont je veux récupérer la notification.
Ouf.
Ce n'est sûrement pas très catholique mais j'ai bien galéré pour trouver une solution fonctionnelle à mon problème.
Aujourd'hui j'essaie de réécrire les choses dans les règles de l'art mais pour cela, il faut que j'en comprenne les mécanismes
Oui, je sais mais en pratique, ça ne fonctionne pas. (dans mon code en tout cas )
Pourtant c'est exactement ce que tu fais:
et ça marche non ?
Le truc , c'est que ton outlet devait être à nil
Le truc , c'est que ton outlet devait être à nil
[/quote]
Ben non. A un autre endroit du code, je fais:
Et ça fonctionne très bien.
Ou alors mon outlet est à nil au moment ou j'initialise la notification (dans la méthode initWithFrame de ma vue)??
Gagné
ça n'a rien changé
Le pire, c'est que tout objet affichant des ascenseurs déclenche la méthode, qu'il soit dans la vue, à côté voire dans une autre fenêtre