2011-11-24 56 views
4

我遇到了問題。 [我唯一能找到的例子是在WWDC 2011演示文稿(「Xcode 4中最大化生產力」)中顯示的,但沒有可用的源代碼(它是一個名爲Birdathon的應用程序)。別的我想出一切都是爲iOS和不跨翻譯] 可可 - 基於視圖的NSTableView,在多個表中使用一個單元格

基本上,我有一些基於視圖的NSTableViews,目前直接在列奠定了我NSTableCellView內的圖像/文本字段。我有一個NSTableCellView的子類,它給了我爲每個在該單元格內使用的文本字段賦值的插口。 DataSource和Delegate被實現並且工作正常 - 我的自定義NSTableViewCell的TableView工作正常。

我的問題是我想在多個不同的表中使用相同的單元格。我不需要每次重新創建相同的佈局,我覺得我應該可以在IB中只畫一次NSTableCellView。 [ - 事實上,我所提到的Birdathon例子似乎證實了這一NSTableCellView在它自己的NIB被解僱了。]

我發現適用於iOS的答案在很多地方,在這裏例如:How do you load custom UITableViewCells from Xib files?

任何人都可以幫我修改Mac上的Cocoa嗎?

感謝,

大衛

+0

確保他們NSTableView的,而不是UITableView的標識? – Dimme

+0

這就是我想說的,可能不是很清楚 - 我想用NSTableView在Cocoa for Mac中執行此操作,但我可以找到的唯一示例是iOS(Cocoa Touch),因此使用UITableView。 鏈接到UITableView問題的原因是因爲該解決方案是我需要的,但是轉換成NSTableView。 –

+0

對不起,我很愚蠢。 Birdathon示例*是* UITableView,這不是我想要的。那麼明顯的下一個問題是:是否可以用NSTableView/Cocoa來做我想做的事情? –

回答

1

這個樣子!

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { 
    return count; 
} 
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
    NSView *customView = [tableView makeViewWithIdentifier:@"customview" 
                owner:self]; 
    …… // set properties 
    return customView; 
} 

在界面生成器中,將自定義單元格視圖的標識符設置爲「customview」,它將自動創建!例如:

set identifier in xcode

只需更換 「自動」 您所使用

+0

Alex,謝謝你的迴應。不過,我已經像你的例子那樣工作了,Table View Cell(如你的屏幕截圖)已經與IB中的表/部分表相關聯。我想要做的是將該單元格移動到任何一個單獨的表格之外,以便可以在多個表格中使用相同的單元格佈局(由多個不同的控件組成),而不必每次重新佈局它。我曾嘗試使用相同的代碼,但沒有出現(大概是因爲它不知道在哪裏看)。我開始假設它可能根本不可能...... –

+0

您可能需要子類nsview。它真的不難。否則,如果你必須使用ib,你可以爲它創建一個單獨的nib,就像在你鏈接的例子中使用init和nib名稱 –

+0

好的,謝謝,我將不得不有更好的瞭解子類NSView。我確實有一個測試,它是一個單獨的筆尖,但沒有工作 - 但我不認爲我是繼承的(或者如果我是因爲我只是從某處複製了一些代碼,而沒有明白它)。這需要我花幾天時間來嘗試,但是如果/當我找到解決方案時,我會反饋我的態度。乾杯。 –

相關問題