Trier une colonne du Tableau
Hello,
Je sais que plusieurs sujet évoque le trie par colonnes .. mais voilà : Je suis vraiment paumé
Même la doc Apple sur NSSortDescriptor ne m'aide pas.
J'espère que vous pourrait m'aider
Tout ce que je veux c'est trier ma Array en cliquant sur l'une des colonne du tableau dont la key est "Name". Le tri doit se faire par ordre alphabétique, et inversement.
J'espère que vous pourrait m'eclaircir sur le sujet
@+
Je sais que plusieurs sujet évoque le trie par colonnes .. mais voilà : Je suis vraiment paumé
Même la doc Apple sur NSSortDescriptor ne m'aide pas.
J'espère que vous pourrait m'aider
Tout ce que je veux c'est trier ma Array en cliquant sur l'une des colonne du tableau dont la key est "Name". Le tri doit se faire par ordre alphabétique, et inversement.
J'espère que vous pourrait m'eclaircir sur le sujet
@+
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
[tt]
  NSMutableArray *monArray;     // Array à trier, initialisé par tes soins
NSArray *tempArray; Â Â Â Â Â // Array résultant temporaire
NSSortDescriptor *sortDescriptor;Â // Descripteur de tri
  BOOL nameAscending=YES;      // Sens de tri
sortDescriptor=NSSortDescriptor alloc] initWithKey:@"Name" ascending:nameAscending]; <br /> tempArray=[monArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor;
[sortDescriptor release];
[monArray release];
monArray=[tempArray mutableCopy];
[/tt]
[tt]NSMutableArray *monArray;Â Â Â Â Â // Array à trier, initialisé par tes soins
NSSortDescriptor *sortDescriptor; // Descripteur de tri  Â
BOOL nameAscending=YES;Â Â Â Â Â Â // Sens de tri
           Â
sortDescriptor=NSSortDescriptor alloc] initWithKey:@"Name" ascending:nameAscending];Â Â Â <br />[monArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor;Â Â Â
[sortDescriptor release];Â [/tt]
J'associe et c'est nickel !
Merci bcp à vous 2 !
En fait, quand je clique sur une colone, on voit pas la fleche, pourtant ça tri !
si je vais sur la dernière colone et que je clique dessus, la fleche de l'avant dernière s'affiche, je clique sur l'avant dernière, ça disparaà®t et apparaà®t sur la seconde (celle avant l'avant dernière).
Galère
Voilà mon code :
la méthode privée saveData contient un reloadData de la tableView
[Fichier joint supprimé par l'administrateur]
Et j'utilise plutôt la méthode delegate "-(void)tableView:(NSTableView *)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn *)tableColumn" pour intercepter les cliques sur les headers columns.
[tt]
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:key ascending:nameAscending selector:@selector(caseInsensitiveCompare];
[/tt]
Prenons par exemple, les lettres ci-dessous dans une colonne, ici la comparaison se fait avec une casse insensible :
A
a
B
b
C
c
Et ci-dessous une comparaison avec une casse sensible :
A
B
C
a
b
c