Ah les delegate et un OutineView !

sisopetronsisopetron Membre
18:14 modifié dans API AppKit #1
Bonsoir,

je poursuis l'exploration de cocoa et je me trouve confronté à  un problème dont je ne trouve pas la cause.  Je vous explique :

Dans ma fenêtre j'ai un NSoutlineView dans lequel j'arrive à  afficher une arborescence.  Je cherche maintenant à  connaitre l'item sélectionné. Et c'est là  que ça coince.  Pourtant j'ai relié dans IB l'outlet delegate de ma OutlineView à  la classe OutLineViewController et dans cette classe j'ai implémenté la méthode suivante :

- (void)sourceListSelectionDidChange:(NSNotification *)notification<br />{<br />	NSLog(@&quot;sélection&quot;);<br />	<br />	NSIndexSet *selectedIndexes = [myOutlineView selectedRowIndexes];<br />	<br />	if([selectedIndexes count]&gt;1)<br />		NSLog(@&quot;sélection multiple&quot;);<br />	else if([selectedIndexes count]==1) {<br />		NSString *identifier = [[myOutlineView itemAtRow:[selectedIndexes firstIndex]] identifier];		<br />		NSLog(@&quot;sélection de %@&quot;,identifier);<br />	}<br />	else {<br />		NSLog(@&quot;pas de sélection&quot;);<br />	}<br />}


Pourtant quand je clique dans mon OutlineView, la console ne m'affiche rien, même pas "sélection".  Ce qui veut dire que le programme ne passe jamais dans - (void)sourceListSelectionDidChange:(NSNotification *)notification.

Qu'ai-je oublié ou qu'ai-je fait de mal ?  Pouvez-vous m'aider ?

Merci

Didier

Réponses

  • devulderdevulder Membre
    18:14 modifié #2
    dans 1276887074:

    Bonsoir,

    je poursuis l'exploration de cocoa et je me trouve confronté à  un problème dont je ne trouve pas la cause.  Je vous explique :

    Dans ma fenêtre j'ai un NSoutlineView dans lequel j'arrive à  afficher une arborescence.  Je cherche maintenant à  connaitre l'item sélectionné. Et c'est là  que ça coince.  Pourtant j'ai relié dans IB l'outlet delegate de ma OutlineView à  la classe OutLineViewController et dans cette classe j'ai implémenté la méthode suivante :

    - (void)sourceListSelectionDidChange:(NSNotification *)notification<br />{<br />	NSLog(@&quot;sélection&quot;);<br />	<br />	NSIndexSet *selectedIndexes = [myOutlineView selectedRowIndexes];<br />	<br />	if([selectedIndexes count]&gt;1)<br />		NSLog(@&quot;sélection multiple&quot;);<br />	else if([selectedIndexes count]==1) {<br />		NSString *identifier = [[myOutlineView itemAtRow:[selectedIndexes firstIndex]] identifier];		<br />		NSLog(@&quot;sélection de %@&quot;,identifier);<br />	}<br />	else {<br />		NSLog(@&quot;pas de sélection&quot;);<br />	}<br />}
    


    Pourtant quand je clique dans mon OutlineView, la console ne m'affiche rien, même pas "sélection".  Ce qui veut dire que le programme ne passe jamais dans - (void)sourceListSelectionDidChange:(NSNotification *)notification.

    Qu'ai-je oublié ou qu'ai-je fait de mal ?  Pouvez-vous m'aider ?

    Merci

    Didier


    Bonjour,

    Essaie plutôt

    - (void)outlineViewSelectionDidChange:(NSNotification *)notification

  • sisopetronsisopetron Membre
    18:14 modifié #3
    Voilà  ce que c'est quand on débute d'analyser des bouts de codes à  droite et à  gauche : on s'emmêle les pinceaux.  ???

    Merci à  toi.
Connectez-vous ou Inscrivez-vous pour répondre.