Я вижу, что есть много вопросов по этому поводу, но ничто не помогло мне получить эту работу.
У меня есть перо с NSTableView с тремя столбцами (с установленными правильными идентификаторами) и класс с именем ShortcutsTableController. В перо у меня есть NSObject со значением класса ShortcutsTableController. Я также подключил NSTableView к своему контроллеру, как обычно.
Это заголовок ShortcutsTableController.h
.
#import <Cocoa/Cocoa.h>
@interface ShortcutsTableController : NSObject <NSTableViewDataSource> {
IBOutlet NSTableView *shortcutsTable;
NSMutableArray *shortcutsList;
}
- (int) numberOfRowsInTableView: (NSTableView*) tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row;
@property (assign) IBOutlet NSTableView *shortcutsTable;
- (void)setUpTable;
@end
А это файл реализации ShortcutsTableController.m
.
#import "ShortcutsTableController.h"
@implementation ShortcutsTableController
@synthesize shortcutsTable;
- (void)setUpTable {
shortcutsList = [[NSMutableArray alloc] init];
NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:
@"blabla", @"nameColumn",
@"Bla bla bla", @"shortcutColumn",
@"Ribla", @"actionColumn", nil];
[shortcutsList addObject:dict1];
[shortcutsTable setDataSource:self];
[shortcutsTable reloadData];
}
-(int) numberOfRowsInTableView: (NSTableView *) tableView {
return [shortcutsList count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row {
if (row != -1)
return [[shortcutsList objectAtIndex:row] objectForKey:[tableColumn identifier]];
return nil;
}
@end
Но когда я пытаюсь построить, в NSTableView ничего не появляется. Нет ошибок, нет предупреждений. Обратите внимание, что я вызываю setUpTable из метода класса делегата awakeFromNib
.
Есть ли что-то, что я делаю не так? Спасибо за помощь.
-Albé
UPDATE. Добавлены строки @property (assign) IBOutlet NSTableView *shortcutsTable;
в заголовке и @synthesize shortcutsTable;
в реализации. Ничего не меняется (