2013-02-10 68 views
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初始化,但我不能找到一种方法做出渴望的初始化。

任何建议我做错了什么?

感谢, 奥利弗

+2

您的单元格子类有一个名为applicationNameLabel的插座,并且将它连接到xib文件中的标签? – rdelmar 2013-02-11 00:00:05

+0

正确。我连线了子视图,主要是通过IB向Outlets显示信息。我唯一偶然发现的是当我访问这些Outlets时,当我通过'NWApplicationListViewCell * cell = [_applicationTableView makeViewWithIdentifier:@“ApplicationListViewCell”owner:self];'创建视图时,它们不会被初始化。在此之后,子视图仍然是零。 – Odo 2013-02-11 10:55:33

回答

1

解决了这一问题。但我不明白为什么这真的发生。

我将IB中的字段连接到文件所有者,但不连接到我的ApplicationViewCell。 接线后,两个一切工作正常。

相关问题