我看到有很多關於此的問題,但沒有任何幫助我得到這項工作。 我有一個帶有三列的NSTableView(帶有正確的標識符集)和一個名爲ShortcutsTableController的類。在筆尖我有一個NSObject與類值ShortcutsTableController。我也像往常一樣將NSTableView連接到我的控制器。無法獲得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中沒有任何東西出現時。沒有錯誤,沒有警告。請注意,我從代理類方法awakeFromNib
中調用setUpTable。
有什麼我做錯了嗎?謝謝你的幫助。
-Albé
UPDATE。在頭文件中增加了行@property (assign) IBOutlet NSTableView *shortcutsTable;
,在執行中增加了@synthesize shortcutsTable;
。沒有什麼變化。 :(
這是什麼'的NSLog(@ 「%@」,shortcutsTable);'產生'setUpTable '? – 2009-12-04 15:33:47
(null)。 :O無法理解這個:( – Donovan 2009-12-04 17:11:44