2017-04-10 63 views
0

所以我有一個Mac應用程序完美的工作NSTableView的。我在其上添加了一個新列,我試圖將其設置爲Combo,但我面臨很多問題。 第一個是,如果我拖放NSComboBoxCell的故事板,它會失去我的所有其他列(奇怪的#1)。所以我決定覆蓋我的NSTextFieldCell,看起來是要走的路。但是現在我的組合框上的項目沒有顯示出來。NSComboBoxCell不會顯示值

- (NSView*)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
NSTableCellView *cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];  

if ([tableColumn.identifier isEqualToString:@"typeCell"]) { 
    NSComboBoxCell *combo =(NSComboBoxCell*) [cell.textField viewWithTag:10]; 

    [combo addItemsWithObjectValues:@[@"Test"]]; 

} 

關於我在做什麼的任何想法是錯誤的? 該列也是可編輯的。

回答

0

你混淆NSTableCellView(的NSView一個子類,用於在視圖基於表視圖細胞)和NSTextFieldCell(的NSCell一個子類,在基於細胞的表視圖用於細胞)。

解決方案奇怪的事情1:拖動一個NSComboBox(沒有Cell)到表視圖。

應該返回一個(的子類)NSView,而不是(的子類)。

[cell.textField viewWithTag:10]返回NSTextField的子視圖。你不應該把子視圖中NSTextField S和我不認爲你做。

我的ComboBox中的項目沒有顯示出來

combonil

+0

TKS!奇怪的事情1解決方案實際上解決了問題! – Walucas