¿Cómo puedo dividir una matriz encuadernada en partes que llenan automáticamente la tabla?

votos
0

Utilicé este 'tutorial' para vincular mi matriz llamada 'colección' a una NSTableview en mi interfaz: http://www.cocoadev.com/index.pl?NSArrayController

El material de Interfacebuilder no es tan difícil. Se vuelve difícil cuando trato de mostrar los datos de mi matriz en la vista.

en mi archivo .h:

@interface MyDocument : NSDocument
{
    NSMutableArray *collection;
    //other variables
}

y en mi archivo .m:

@implementation MyDocument
@synthesize collection;
     //quite some functions

     inside one function (that works):
     [collection addObject:fileName];

     //some other functions

     inside the init function:
     collection = [[NSMutableArray alloc] init];

Ahora supongo que la matriz está ligada a la interfaz y a la tabla dentro de ella, pero por supuesto la tabla y sus columnas deben rellenarse de una manera específica. Ahora mismo no se muestra nada después de agregar un artículo. con la colección addObject: función fileName

¿Debo crear una sub-matriz como un elemento, lleno de campos? Y cómo debo unir estos valores / campos a las columnas específicas. (los campos son ' artista ', ' título ', etc.)

Ya he vinculado todas las columnas de Interface Builder a Array Controller con la clave del controlador ' arrangedObjects ' y Model Key Path ' artist ', ' title ', etc.

Por favor, mantén la explicación simple ya que poco a poco empiezo a pensar que nunca obtendré este control de matriz ... Objective-C no parece tan difícil, pero el enlace que necesita es lo que simplemente no entiendo. Los ejemplos de Apple no son suficientes para los novatos

Publicado el 27/01/2009 a las 20:46
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
1

Simplemente mutar la matriz no dice nada de que la matriz haya cambiado. Debe enviar notificaciones de KVO para la mutación.

La forma correcta de hacerlo es implementar métodos de acceso para la propiedad y luego llamar a sus propios descriptores de acceso. En este caso, querrá implementar insertObjectInCollection:atIndex:y pasar la longitud de la matriz como el índice ( [self insertObjectIntoCollection:fileName atIndex:[self countOfCollection]después de implementar también countOfCollection).

Cuando implementa accesos, cuando un objeto se une a la propiedad, Cocoa envolverá los accesos en la magia KVO que enviará las notificaciones apropiadas para la mutación.

Respondida el 28/01/2009 a las 00:35
fuente por usuario

votos
1

Por lo general, para poblar sus datos, usaría un diccionario (la clave sería el keyPath y objeta los datos) para cada fila, o mejor aún, crearía una clase para representar los datos y crearía una nueva instancia para cada fila. Las vinculaciones pueden ser un poco complicadas al principio (si es nuevo en Cocoa, acostúmbrese primero a los métodos de fuente de datos), pero eche un vistazo a este tutorial y a los ejemplos aquí . Ambos contienen ejemplos que puedes descargar y examinar exactamente cómo se configuran los enlaces en Interface Builder.

Respondida el 27/01/2009 a las 22:19
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more