我看到有很多关于此的问题,但没有任何帮助我完成这项工作。我有一个带有 NSTableView 的笔尖,其中包含三列(设置了正确的标识符)和一个名为 ShortcutsTableController 的类。在笔尖中,我有一个类值为 ShortcutsTableController 的 NSObject。我还像往常一样将 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 中什么也没有出现。没有错误,没有警告。请注意,我从 Delegate Class Method 中调用了 setUpTable awakeFromNib
。
有什么我做错了吗?谢谢你的帮助。
——阿尔贝
更新。@property (assign) IBOutlet NSTableView *shortcutsTable;
在标题和实现中添加了行@synthesize shortcutsTable;
。没有什么变化。:(