В Xcode 4 я создал новое приложение Cocoa под названием Tabletest
, на xib я добавил NSTableView
и перетянул его в delegate object
приложения (создаваемый автоматически при создании нового приложения Cocoa).Я установил источник данных таблицы и делегировал объект делегата приложения с именем Tabletest App Delegate
.
Вкл. tabletestAppDelegate.h
и tabletestAppDelegate.m
Я добавил (очевидно) требуемый
- (int)numberOfRowsInTableView:(NSTableView *)tableView;
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row;
- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
return (int)[myArray count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
return [myArray objectAtIndex:row];
}
и объявилNSMutableArray
like NSMutableArray * myArray;
Затем я перетащил таблицу в .h
и создал свойство вроде:
@property (assign) IBOutlet NSTableView *myTable;
В файле .m
я добавил реализацию numberOfRowsInTableView
и (id)tableView...
и добавлено:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
myArray = [[NSMutableArray alloc] initWithCapacity:10];
int i = 0;
for(i=0; i<10;i++)
{
[myArray insertObject: [NSString stringWithFormat:@"This is string %d!",i+1] atIndex:i];
}
NSEnumerator * enumerator = [myArray objectEnumerator];
id element;
while((element = [enumerator nextObject]))
{
// Do your thing with the object.
NSLog(@"%@", element);
}
}
NSLog показывает, что массив заполняется, но информация никогда не отображается в таблице.Что мне не хватает?Я новичок в какао и понятия не имею, почему добавить информацию в простую таблицу так сложно.
Спасибо за помощь.