Quiero usar NSArrayController para llenar NSTableview, pero no puedo encontrar el procedimiento exacto.Cómo usar NSArrayController para rellenar datos en NSTableView
8
A
Respuesta
31
Una forma de hacerlo es a través de KVC, utilizando un NSArrayController para llenar un NSTableView.
Código Ejemplo:
TestAppDelegate.h
#import <Cocoa/Cocoa.h>
@interface TestAppDelegate : NSObject <NSApplicationDelegate>
{
IBOutlet NSArrayController *arrayController;
IBOutlet NSTableView *theTable;
}
@property (assign) IBOutlet NSArrayController *arrayController;
@property (assign) IBOutlet NSTableView *theTable;
- (void) populateTable;
@end
TestAppDelegate.m
#import "TestAppDelegate.h"
@implementation TestAppDelegate
@synthesize arrayController;
@synthesize theTable;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Populate the table once with the data below
[self populateTable];
}
- (void) populateTable
{
NSMutableDictionary *value = [[NSMutableDictionary alloc] init];
// Add some values to the dictionary
// which match up to the NSTableView bindings
[value setObject:[NSNumber numberWithInt:0] forKey:@"id"];
[value setObject:[NSString stringWithFormat:@"test"] forKey:@"name"];
[arrayController addObject:value];
[value release];
[theTable reloadData];
}
@end
Ahora crea los enlaces en Interface Builder:
- Crear una NSArrayController & conéctelo a arrayController
- Conecte el NSTableView a laTabla;
- Seleccione la NSTableView y establecer TestAppDelegate como su dataSource & delegado
- Para cada columna de la tabla
- unirse a su valor a arrayController
- Establecer los tecla Controlador de a arrangedObjects
- Conjunto el modelo clave ruta a cada clave desde arriba (por ejemplo, id o nombre)
Cuando se ejecuta, ahora debe haber una sola fila de datos. (Este es un código no probado, pero debe dar la idea general)
Para obtener más ayuda con estas fijaciones echa un vistazo a this example.
Here is also a good example con imágenes de cómo crear un NSTableView poblado.
Cuestiones relacionadas
- 1. NSTableView seccionado usando NSArrayController
- 2. Ordenando un NSArrayController respaldado NSTableView
- 3. Mostrando índice de fila en un NSTableView vinculado a NSArrayController
- 4. Hacer editable la fila NSTableView al agregar objetos con NSArrayController
- 5. ¿Cómo debo eliminar todos los elementos de un NSTableView controlado por NSArrayController?
- 6. Cómo obligar a la selección de la NSTableView a la NSArrayController
- 7. ¿Cómo actualizar NSTableView sin usar -reloadData?
- 8. NSTableView - Desactivar selección de fila
- 9. ¿Cómo puedo usar los datos JSON para rellenar las opciones de un cuadro de selección?
- 10. Filtrado + animación NSTableView basada en la vista
- 11. ¿Cómo comparto un NSArrayController entre dos archivos semilla?
- 12. Inicialización de NSArrayController
- 13. NSTableView y arrastre y suelte desde Finder
- 14. ¿Arrastrar y colocar archivos en un NSTableView?
- 15. NSArrayController y KVO
- 16. Arrastrando desde NSTableView para quitar
- 17. Ordenando NSTableView
- 18. ¿Cómo deshabilitar la ordenación en NSTableVIew?
- 19. Cómo vincular datos a un NSTableView desde un NSDictionary?
- 20. Rellenar TreeView la base de datos
- 21. Cómo rellenar XMLGregorianCalendar()
- 22. Rellenar datos de campo de formulario Django con datos Db
- 23. ¿Cómo usar iText (iTextSharp) para rellenar campos de formulario de XFA en PDF?
- 24. Poblando NSTableview desde una matriz mutable
- 25. Cómo rellenar una matriz con datos de conjunto de registros
- 26. Cómo rellenar la aplicación web con los datos iniciales
- 27. Encontrar un elemento específico en un NSArrayController
- 28. android: cómo rellenar Edittext?
- 29. tabla de SQL Rellenar con datos aleatorios
- 30. Cómo rellenar NSString con espacios?
Muy buena y sustancial respuesta. Sin embargo, algunas pequeñas objeciones técnicas. Con el uso de un controlador para rellenar las columnas de la vista de tabla, no es necesario * conectar * dataSource de la vista de tabla y delegar propiedades. Además, no estás usando KVC en tu código de muestra, estás usando * bindings *. Si bien el mecanismo de enlaces se basa en KVC (así como en KVO y más), en realidad no está utilizando ninguna de las API de KVC en su muestra porque no es necesario. – Huperniketes