NSTableView: нет текста в новых строках - PullRequest
0 голосов
/ 19 ноября 2011

Я написал метод для добавления новых строк в NSTableView. Он добавляет новые строки, но там пусто, без текста. Вот код:

AppDelegate.h

#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate>
{    
    IBOutlet NSButton *addDreamButton;
    IBOutlet NSButton *removeDreamButton;
    IBOutlet NSTextField *dreamField;
    IBOutlet NSTableView *dreamTable;
    IBOutlet NSMutableArray *dreamlist;    
    IBOutlet NSTextField *testf;
}

- (IBAction)addDream:(id)sender;
- (IBAction)deleteDream:(id)sender;

@property (assign) IBOutlet NSWindow *window;
@end

AppDelegate.m

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;

-(int) numberOfRowsInTableView: (NSTableView *) tableView
{
    return [dreamlist count];
}

-(void) dreamTable: (NSTableView *) tableview
    setObjectValue:(id)anObject
    objectValueForTableColumn: (NSTableColumn *) tablecolumn
    row:(int) rowIndex
{ 
    [dreamlist replaceObjectAtIndex:rowIndex withObject:anObject];
}

- (IBAction)addDream:(id)sender
{
    NSString* thedream = dreamField.stringValue;
    [dreamlist addObject: thedream];
    [dreamTable reloadData];
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
     dreamlist = [[NSMutableArray alloc] init]; 
}
@end

AppDelegate связан как источник данных с TableView.

Поэтому, когда я нажимаю кнопку «Добавить», в таблице появляются пустые строки (текстовое поле, в котором я получаю текст, не пусто; я отладил и увидел, что MutableArray содержит правильные строки).

1 Ответ

2 голосов
/ 19 ноября 2011

Ваш источник данных табличного представления должен реализовать этот метод:

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
    return [dreamlist objectAtIndex:rowIndex];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...