1
我试图让我周围的基于视图NSTableViews头在OS X基于视图的NSTableView的外部笔尖,子视图不会被初始化
我的问题是,在加载的观察室(一个NSView子类)的子视图当我尝试在我的委托中分配值时未初始化。
此刻显示正确的计数和正确的视图,但我无法访问子视图来分配正确的值。
是我迄今所做的:
- 创造了在Interface Builder中自定义视图细胞的厦门国际银行。
- 创建单元格的自定义类并在IB中分配它。
这工作正常,我可以看到调试器中的属性。正确的类 和属性是连接到正确的字段的IBOulets。
我可以看到呼叫:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
在我NSViewController:awakeFromNib
我做的:
// Make my view controller the delegate
_applicationTableView.delegate = self;
// set the correct datasource
_applicationTableView.dataSource = [NWDataHolder sharedInstance];
// register the nib with the custom cell
[_applicationTableView registerNib:cellNib forIdentifier:@"ApplicationListViewCell"];
在我- (NSView *)tableView:viewForTableColumn:row:
我做的:
NWApplicationListViewCell *cell = [_applicationTableView makeViewWithIdentifier:@"ApplicationListViewCell" owner:self];
返回正确的类和单元格,并且可以访问属性。 的问题是,子视图未初始化,属性是零和新的价值不能设置:
Log(@"Application Name Label %@", cell.applicationNameLabel); => nil
I`ve看到了一些迹象表明该子视图lazyly初始化,但我不能找到一种方法做出渴望的初始化。
任何建议我做错了什么?
感谢, 奥利弗
您的单元格子类有一个名为applicationNameLabel的插座,并且将它连接到xib文件中的标签? – rdelmar 2013-02-11 00:00:05
正确。我连线了子视图,主要是通过IB向Outlets显示信息。我唯一偶然发现的是当我访问这些Outlets时,当我通过'NWApplicationListViewCell * cell = [_applicationTableView makeViewWithIdentifier:@“ApplicationListViewCell”owner:self];'创建视图时,它们不会被初始化。在此之后,子视图仍然是零。 – Odo 2013-02-11 10:55:33