Как использовать NSArrayController для заполнения данных в NSTableView - PullRequest
9 голосов
/ 01 сентября 2010

Я хочу использовать NSArrayController для заполнения NSTableview, но я не могу узнать точную процедуру.

1 Ответ

32 голосов
/ 13 января 2011

Один из способов сделать это - через KVC, используя NSArrayController для заполнения NSTableView.

Пример кода:

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

Теперь создайте привязки в конструкторе интерфейса:

  • Создайте NSArrayController и подключите его к arrayController
  • Соедините NSTableView с таблицей;
  • Выберите NSTableView и установите TestAppDelegate в качестве его источника данных и делегата
  • Для каждого столбца в таблице
  • Свяжите его значение с arrayController
  • Установите Клавиша контроллера - упорядоченные объекты
  • Установите Путь к ключу модели для каждой клавиши сверху (например, id или name )

При запуске теперь должна быть одна строка данных.(Это непроверенный код, но он должен дать общее представление)

Для получения дополнительной помощи с этими привязками посмотрите этот пример .

Вот также хорошийпример с картинками о том, как создать заполненный NSTableView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...