Dans Objective-C, mon programme ouvre une fenêtre et affiche un tableau. Je souhaite mettre en surbrillance une ligne spécifiée du tableau.
Comment puis-je faire cela?
J'ai l'air d'avoir besoin du code
[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];
J'ai regardé la documentation du développeur et j'ai compris que le BOOL devait être NON.
En regardant les documents NSIndexSet, je ne peux pas comprendre quelle devrait être la bonne syntaxe.
ce serait la bonne façon:
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 3)];
ou vous pouvez utiliser le NSMutableIndexSet
pour les index aléatoires:
NSMutableIndexSet *mutableIndexSet = [[NSMutableIndexSet alloc] init];
[mutableIndexSet addIndex:0];
[mutableIndexSet addIndex:2];
[mutableIndexSet addIndex:9];
etc.
L'impression d'un NSIndexSet
dans le débogueur vous montrera qu'ils sont en interne NSRange
s. Pour en créer un, vous pouvez spécifier la plage ou un seul index explicite (à partir duquel il créera la plage); quelque chose comme
NSIndexSet *indexes = [[NSIndexSet alloc] initWithIndex:rowToHighlight];
[myTableView selectRowIndexes:indexes byExtendingSelection:NO];
[indexes release];
Notez que les index doivent tous être des entiers non signés (NSUIntegers
, en particulier).
J'utiliserais une méthode d'usine pour éviter d'avoir à gérer la mémoire:
[myTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:indexes]
byExtendingSelection:NO];
J'ai l'air d'avoir besoin du code
[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];
Non; ce sont des castings sans rien à lancer, ce qui n'est pas valide.
Supprimez les modèles et placez-y des valeurs à la place.
J'ai regardé la documentation du développeur et j'ai compris que le
BOOL
devait êtreNO
.
Oui, car vous ne voulez pas étendre la sélection, vous voulez la remplacer.
En regardant les documents NSIndexSet, je ne peux pas comprendre quelle devrait être la bonne syntaxe.
Identique à la transmission de toute autre variable ou expression de message.
Vous devez créer un ensemble d'index, puis le stocker dans une variable et le transmettre ou transmettre directement le résultat du message de création.