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 视图中的单元格)和 NSTextFieldCell
(NSCell
,用于基于单元格的 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
combo
是 nil
.
所以我有一个完美的工作 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 视图中的单元格)和 NSTextFieldCell
(NSCell
,用于基于单元格的 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
combo
是 nil
.