更改 NSOutlineView 揭示三角形的位置并设置子节点的图标

问题描述 投票:0回答:1

我正在创建一个像这样的 OutlineView:

My OutlineView

我想实现一个看起来像这样的视图:

Desired view

我面临的两个问题是:

  1. 我找不到在文件夹图标和名称之间移动显示三角形的方法。

  2. 我无法为子节点设置“P”图标。

对于第二个问题,这是我尝试设置图标的代码:

- (void)outlineView:(NSOutlineView *)aTableView willDisplayCell:(NSCell*)aCell forTableColumn:(NSTableColumn *)aTableColumn item:(id)item
{
    NSImage* image = nil;
    BOOL isLeaf = [item isLeaf];
    
    if ([[aTableColumn identifier] isEqualToString:@"styleIcon"]) {
        
        if (aTableView == _charOutlineView) {
             image = [QXPGeneralInterfaces imageFor:(isLeaf ? kCharacterIconImage : kFolderIconImage)];
        }
        else {
            image = [QXPGeneralInterfaces imageFor:(isLeaf ? kParagraphIconImage : kFolderIconImage)];
        }
        
        if (image != nil) {
            [aCell setImage:image];
        }
}

aCell 确实设置了图像,但不知何故它在 UI 中消失了。

objective-c cocoa nsoutlineview outline-view
1个回答
0
投票

我找不到在文件夹图标和名称之间移动显示三角形的方法。

将文件夹图标放入第 0 列,将标题放入第 1 列。将

outlineTableColumn
(或 IB 中的大纲列)设置为第 1 列。

© www.soinside.com 2019 - 2024. All rights reserved.