Objective c NSOutlineView:如何使父项加粗?

Objective c NSOutlineView:如何使父项加粗?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我有一个NSOutlineView,其中列出了家长项目和孩子 以粗体文本制作父项(带有开头箭头的项)的最简单方法是什么 谢谢如果您使用的是基于单元格的大纲视图,则可以使用此委托方法来加粗父项: // Assuming you use NSTextFieldCell - (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn

我有一个NSOutlineView,其中列出了家长项目和孩子

以粗体文本制作父项(带有开头箭头的项)的最简单方法是什么


谢谢

如果您使用的是基于单元格的大纲视图,则可以使用此委托方法来加粗父项:

// Assuming you use NSTextFieldCell
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    if ([self outlineView:outlineView numberOfChildrenOfItem:item] > 0) {
        [(NSCell *)cell setFont: [NSFont boldSystemFontOfSize: ((NSCell *)cell).font.pointSize]];
    } else {
        [(NSCell *)cell setFont: [NSFont systemFontOfSize: ((NSCell *)cell).font.pointSize]];
    }
}
否则,在基于视图的大纲视图中,可以执行以下操作:

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    NSTableCellView *cellView = [outlineView makeViewWithIdentifier:@"MyIdentifier" owner:self];
    if ([self outlineView:outlineView numberOfChildrenOfItem:item] > 0) {
        [cellView.textField setFont: [NSFont boldSystemFontOfSize: cellView.textField.font.pointSize]];
    } else {
        [cellView.textField setFont: [NSFont systemFontOfSize: cellView.textField.font.pointSize]];
    }

    // do whatever else you do
    return cellView;
}
或者,
NSOutlineViewDelegate
-outlineView:isGroupItem:
可能就是您实际需要的: