Пожалуйста, объясните мне, как управлять Табличным Представлением в Какао? - PullRequest
1 голос
/ 06 января 2012

Я ищу в Google, чтобы найти хороший ответ, но большинство уроков показано в предыдущих версиях XCode ... Кроме того, я не хочу перетаскивать ячейки из Интерфейсного Разработчика, но для программного управления табличным представлением (из файла подкласса NSObject) .

То, что я сейчас делаю, это:

1. Создайте файл с именем tableController.h, который является подклассом NSObject.2. Я создаю объект NSObject в моем Nib-файле (и устанавливаю его как подкласс tableController) .3. Я перетаскиваю табличное представление в свое окно.4. Я CTRL + перетащить из таблицы в мой tableController.h, чтобы создать выход «tableView»5. Я создаю эти функции в файле интерфейса:
-(int)numberOfRowsInTableView:(NSTableView *)cocoaTV;
-(id)tableView:(NSTableView *)cocoaTV:objectValueForTableCollumn:(NSTableColumn *)tableCollumn row:(int)row;

6.Я реализую функции следующим образом:

-(int)numberOfRowsInTableView:(NSTableView *)cocoaTV{
    return 5;
}
-(id)tableView:(NSTableView *)cocoaTV:objectValueForTableCollumn:(NSTableColumn *)tableCollumn row:(int)row{
    NSArray *tvArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
    NSString *v = [tvArray objectAtIndex:row];
    return v;
}

Затем я CTRL + Перетаскиваю из Объекта в Интерфейсном Разработчике в Представление Таблицы, чтобы установить источник данных и установить его в качестве делегата.Я создаю и запускаю приложение, оно показывает, что оно создало 5 строк, но в каждой ячейке каждого столбца написано «Ячейка табличного представления».

Любая помощь будет принята с благодарностью ....

1 Ответ

0 голосов
/ 06 января 2012

-(id)tableView:(NSTableView *)cocoaTV:objectValueForTableCollumn:(NSTableColumn *)tableCollumn row:(int)row неправильно .. я не уверен, как он компилируется, если честно (если не было ошибки, скопируйте / вставьте его).метод должен выглядеть так:

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSArray *tvArray = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
    NSString *v = [tvArray objectAtIndex:row];
    return v;
}
...