我想用海关NSTableCellView制作一个NSTableCellView,下面是我迄今为止所做的工作:
附件代表:
#import <Cocoa/Cocoa.h>
#import "TheView.h"
@interface AppDelegate : NSObject <NSApplicationDelegate, NSTableViewDataSource, NSTableViewDelegate>
@property (weak) IBOutlet NSTableView *tableView;
@property (copy) NSMutableArray *tableContent;
@property (assign) IBOutlet NSWindow *window;
-(IBAction)addRow:(id)sender;
@end附件代表:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize tableContent;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
tableContent = [[NSMutableArray alloc]init];
}
-(id)init{
self = [super init];
if (self) {
tableContent = [[NSMutableArray alloc]init];
}
return self;
}
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
NSLog(@"%@",tableContent); //Here tableContent is empty
return [tableContent count];
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
TheView *view = [tableContent objectAtIndex:row];
result = view;
return result;
}
-(IBAction)addRow:(id)sender {
TheView *view = [[TheView alloc]init];
[tableContent addObject:view];
NSLog(@"%@",tableContent); //Here tableContent result with the correct number of objects
[_tableView reloadData];
}但当我试图添加一个对象时,什么都不会发生.TheView是NSTableCellView的一个子类,它绘制了一个简单的rect。当然,我添加了NSTableViewDataSource和NSTableViewDelegate。
更新2在深入研究我的代码之后,我发现在numberOfRowsInTableView中,tableContent导致了空的,或者与我用.
发布于 2014-03-16 18:08:43
您创建的视图似乎没有大小。您可以尝试替换视图初始化,使用initWithFrame而不是init。
[[TheView alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];此外,您还可以尝试在viewForTableColumn方法上设置名声。
https://stackoverflow.com/questions/22439253
复制相似问题