cocoa foundation nsindexset

cocoa - Cómo utilizar NSIndexSet



foundation (4)

Parece que necesito el código

[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];

No; esos son moldes sin nada que lanzar, lo cual no es válido.

Retire los moldes y ponga valores allí.

Miré la documentación del desarrollador y descubrí que el BOOL debería ser NO .

Sí, porque no desea extender la selección, desea reemplazarla.

Al mirar los documentos de NSIndexSet, no puedo averiguar cuál debería ser la sintaxis correcta.

Lo mismo que para pasar cualquier otra variable o expresión de mensaje.

Debe crear un conjunto de índices y luego esconderlo en una variable y pasarlo o pasar el resultado del mensaje de creación directamente.

En Objective-C, mi programa abre una ventana y muestra una tabla. Quiero tener una fila específica de la tabla resaltada.

¿Cómo hago esto?

Parece que necesito el código

[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];

Miré la documentación del desarrollador y descubrí que el BOOL debería ser NO.

Al mirar los documentos de NSIndexSet, no puedo averiguar cuál debería ser la sintaxis correcta.


La impresión de un NSIndexSet en el depurador le mostrará que son internamente NSRange s. Para crear uno, puede especificar el rango o un solo índice explícito (a partir del cual se creará el rango); algo como

NSIndexSet *indexes = [[NSIndexSet alloc] initWithIndex:rowToHighlight]; [myTableView selectRowIndexes:indexes byExtendingSelection:NO]; [indexes release];

Tenga en cuenta que todos los índices deben ser enteros sin signo ( NSUIntegers , específicamente).


Sería la manera correcta:

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 3)];

o puede usar el NSMutableIndexSet para los índices aleatorios:

NSMutableIndexSet *mutableIndexSet = [[NSMutableIndexSet alloc] init]; [mutableIndexSet addIndex:0]; [mutableIndexSet addIndex:2]; [mutableIndexSet addIndex:9];

etc.


Usaría un método de fábrica para evitar tener que administrar la memoria:

[myTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:indexes] byExtendingSelection:NO];