NSComboBoxCell 不会显示值

NSComboBoxCell won't display values

所以我有一个完美的工作 NSTableView 用于 Mac 应用程序。我在上面添加了一个新列,我试图将其设置为 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"]];

}

知道我做错了什么吗? 该列也已可编辑。

您混淆了 NSTableCellView([=11= 的子类],用于基于视图的 table 视图中的单元格)和 NSTextFieldCellNSCell,用于基于单元格的 table 视图中的单元格。

怪事1的解决方法:拖一个NSComboBox(没有Cell)到table视图。

viewForTableColumn 应该 return 是 NSView 的(子类),而不是 NSCell.

的(子类)

[cell.textField viewWithTag:10] return 是 NSTextField 的子视图。你不应该把子视图放在 NSTextField 中,我认为你没有。

the items on my combobox are not showing up

combonil.