【发布时间】:2011-08-17 17:46:18
【问题描述】:
我目前正在尝试在我的 Cocoa 应用程序中使用新的基于视图的 NSOutlineView。由于我没有使用绑定,所以我在控制器中实现了所有必需的委托和数据源方法。
在界面构建器中,我添加了一个 NSOutlineView,其突出显示设置为 SourceList,内容模式设置为 View Based。因此,提供了两个默认的表格单元格视图(一个标题单元格将 HeaderCell 设置为标识符,一个数据单元格将 DataCell 设置为标识符)
这就是它在界面生成器中的样子,标题单元格视图正确显示灰蓝色 textField 而数据单元格视图有一个图像视图和一个 textField 正确颜色和字体设置
为了提供视图,我使用以下代码返回 DataCell-view 或 HeaderCell-view 并根据界面构建器中设置的相应标识符相应地设置单元格的 textField。
- (NSView *)outlineView:(NSOutlineView *)outlineView
viewForTableColumn:(NSTableColumn *)tableColumn
item:(id)item {
NSTableCellView *result = nil;
if ([item isKindOfClass:[NSMutableDictionary class]]) {
result = [outlineView makeViewWithIdentifier:@"HeaderCell" owner:self];
id parentObject = [outlineView parentForItem:item] ? [outlineView parentForItem:item] : groupedRoster;
[[result textField] setStringValue:[[parentObject allKeys] objectAtIndex:0]];
} else {
result = [outlineView makeViewWithIdentifier:@"DataCell" owner:self];
[item nickname] ? [[result textField] setStringValue:[item nickname]] : [[result textField] setStringValue:[[item jid] bare]];
}
return result;
}
运行一切,如下所示。
谁能给我提示,为什么标题单元格在被选中时既不粗体也不正确着色?
【问题讨论】:
标签: cocoa macos nsoutlineview