2013-02-10 57 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。 接線後,兩個一切工作正常。

相關問題