Autoriser l'édition de certaines lignes

muqaddarmuqaddar Administrateur
19:08 modifié dans API AppKit #1
Youp la boom,

Dans une tableView, je veux autoriser ou pas l'édition de certaines lignes. Pour cela, j'ai un array de dictionnaires dont certains ont false ou true comme valeur pour la clé en question dans le dico.

J'ai pensé faire cela :

- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex<br />{<br />	if (([[groupsArray objectAtIndex: rowIndex] objectForKey: @&quot;goupBool&quot;]) == YES) {		<br />		[[groupsArray objectAtIndex: rowIndex] takeValue:anObject forKey:[aTableColumn identifier]];<br />	}<br />}


Malheureusement, aucune cellule ne peut se modifier , même celles qui ont un BOOL à  true.

Réponses

  • mpergandmpergand Membre
    19:08 modifié #2
    Généralement, pour contrôler l'édition d'une cellule on utilise tableViewShouldEditLocation (edition par double-clic)
    mais pour un checkBox on peut utiliser tableViewWillDisplayCell en jouant sur l'attribut setEnabled true/false
  • muqaddarmuqaddar Administrateur
    19:08 modifié #3
    Ok, je vais essayer avec tableViewShouldEditLocation.
    Ici, la clé booléenne qui contrôle cette autorisation n'est pas présente comme identifier dans la tableView mais elle est bien dans l'array.
  • muqaddarmuqaddar Administrateur
    19:08 modifié #4
    Ah bein non, ta méthode c'est que pour Java je crois...
  • mpergandmpergand Membre
    novembre 2004 modifié #5
    Sorry :) ça doit être tableView:shouldEditTableColumn:row:

    et tableView:willDisplayCell:forTableColumn:row:
  • muqaddarmuqaddar Administrateur
    19:08 modifié #6
    Merci mpergand !

    <br />- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex<br />{<br />	if ([[[groupsArray objectAtIndex:rowIndex] objectForKey: @&quot;groupBool&quot;] boolValue] == TRUE)<br />		return YES;<br />	else <br />		return NO;<br />}
    


    ça marche.
  • cbrandtcbrandt Membre
    19:08 modifié #7
    <br />- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex<br />{<br />     return [[[groupsArray objectAtIndex:rowIndex] objectForKey: @&quot;groupBool&quot;] boolValue];<br />}<br />
    
Connectez-vous ou Inscrivez-vous pour répondre.