NSComboBoxCell不会显示值

时间:2017-04-10 17:35:38

标签: nstableview nstableviewcell

所以我有一个完美的NSTableView for Mac App。我在其上添加了一个新专栏,我试图将其设置为Combo,但我遇到了很多问题。 首先,如果我将NSComboBoxCell拖放到Storyboard上,它将丢失所有其他列(奇怪的是#1)。所以我决定覆盖我的NSTextFieldCell,这看起来就像是要走的路。但是现在我的组合框上的物品没有显示出来。

- (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"]];

}

对我做错了什么的任何想法? 该列也已可编辑。

1 个答案:

答案 0 :(得分:0)

您混淆NSTableCellViewNSView的子类,用于基于视图的表视图中的单元格)和NSTextFieldCellNSCell的子类,用于基于单元格的表视图中的单元格。

解决奇怪的事情1:将NSComboBox(不Cell)拖到表格视图中。

viewForTableColumn应该返回NSView的(子类),而不是NSCell的(子类)。

[cell.textField viewWithTag:10]会返回NSTextField的子视图。您不应该将子视图放在NSTextField中,我认为您没有。

  

我的组合框上的项目没有显示

combonil