Connaitre le statut d'un NSButtonCell

RocouRocou Membre
17:39 modifié dans API AppKit #1
Bonjour,

Je voudrais connaitre le statut coché/décoché d'un NSButtonCell qui se trouve dans une NSTableView.
Rien à  faire, je n'y arrive pas aussi bien au clic sur une ligne quand parcourant le datasource associé à  la NSTableView.

ça à  l'air tout con mais je bute dessus depuis plusieurs jours.


Réponses

  • CéroceCéroce Membre, Modérateur
    17:39 modifié #2
    Salut,

    Ton problème exact n'est pas clair:
    - arrives-tu à  trouver quel est le numéro de la ligne cliquée ?
    - pourquoi le data source n'arriverait pas à  savoir si la case est cochée dans le modèle ? Après tout, c'est bien le data source qui dit à  la table si elle est cochée ou non !
  • 17:39 modifié #3
    Au temps que je me souvienne, une cell éditée depuis un tableau provoque l'appelle de tableView:setObjectValue:forTableColumn:row:

    Donc à  partir de là , je ne vois pas trop le problème...

    <br />#define AFFICHER_TABLECOLUMN_ID	@&quot;Afficher&quot;<br />- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex<br />{<br />	Dechet* unDechet = [detchets objectAtIndex:rowIndex];<br />	if([[aTableColumn identifier] isEqualTo:AFFICHER_TABLECOLUMN_ID])<br />	{<br />		BOOL state = [anObject state];<br />		NSLog(@&quot;Nouvel etat : %i&quot;, state];<br /><br />		unDechet.show = state;<br /><br /><br />	}<br />}<br />
    
  • mpergandmpergand Membre
    août 2010 modifié #4
    dans 1282560956:

    <br />#define AFFICHER_TABLECOLUMN_ID	@&quot;Afficher&quot;<br />- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex<br />{<br />	Dechet* unDechet = [detchets objectAtIndex:rowIndex];<br />	if([[aTableColumn identifier] isEqualTo:AFFICHER_TABLECOLUMN_ID])<br />	{<br />		BOOL state = [anObject state];<br />		NSLog(@&quot;Nouvel etat : %i&quot;, state];<br /><br />		unDechet.show = state;<br /><br /><br />	}<br />}<br />
    



    Sauf que anObject n'est pas un NSCell, mais un NSNumber, donc:
    <br />unDechet.show=[anObject boolValue];
    
  • 17:39 modifié #5
    dans 1282563476:

    dans 1282560956:

    <br />#define AFFICHER_TABLECOLUMN_ID	@&quot;Afficher&quot;<br />- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex<br />{<br />	Dechet* unDechet = [detchets objectAtIndex:rowIndex];<br />	if([[aTableColumn identifier] isEqualTo:AFFICHER_TABLECOLUMN_ID])<br />	{<br />		BOOL state = [anObject state];<br />		NSLog(@&quot;Nouvel etat : %i&quot;, state];<br /><br />		unDechet.show = state;<br /><br /><br />	}<br />}<br />
    



    Sauf que anObject n'est pas un NSCell, mais un NSNumber, donc:
    <br />unDechet.show=[anObject boolValue];
    



    Tout a fait  :P
  • RocouRocou Membre
    17:39 modifié #6
    Merci à  tous, le problème était effectivement tout con: j'avais oublié que j'avais une colonne invisible dans ma NSTableView.  :rougedehonte:
Connectez-vous ou Inscrivez-vous pour répondre.