我正在尝试将NSTableView
的数据源/委托/引用插座设置为我的主.xib
的外部类。出于某种原因,我无法从我的Xib Ctrl+Drag
创建.h
文件来创建引用。到目前为止,这是我的代码:
table1.h
@interface table1 : NSTableView
@property (strong) NSArray* tableData;
@end
table1.m
- (NSView*)tableView:(NSTableView*)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
[cellView.textField setStringValue:[self.startupTypes objectAtIndex:row]];
return cellView;
}
- (NSInteger)numberOfRowsInTableView:(NSTableView*)tableView {
return [self.startupTypes count];
}
- (void)viewDidMoveToWindow {
self.startupTypes = @[@"Test Data 1", @"Test Data 2"];
}
然后我打开了我的.xib文件,将表类设置为table1,并尝试从表中Ctrl+Drag
到.h
文件来创建插座。但它不会让我创建连接。我也无法将此文件设置为数据源或委托。
答案 0 :(得分:0)
将您的代码更改为:
- (NSInteger)numberOfRowsInTableView:(NSTableView*)tableView {
if (tableView == self.table1) {
return [self.activeList count];
} else if (tableView == self.table2) {
return [self.disabledList count];
}
return 0;
}
第一个问题是您将“table1
”和“table2
”声明为属性,但您没有正确引用它们。
第二个问题是“isEqual
”比较对象的内容,但你真正想做的是比较对象地址本身(所以“isEqual
”不适用于此)。