【问题标题】:How do I add a static NSFolder image to a cocoa bindings table如何将静态 NSFolder 图像添加到可可绑定表
【发布时间】:2014-02-11 12:55:53
【问题描述】:

我有一个表,它从核心数据中获取它的值,并通过可可绑定添加。表中打印的值是文件夹名称。我希望在每个文件夹名称的左侧打印一个 NSFolder。我从一个简单的单列表开始,以确保我的可可绑定工作,他们做到了:

之后我尝试添加第二列,然后我在该新列中添加了一个图像单元格,重新排列了列,并将图像单元格的图像设置为 NSFolder:

当我将图像单元格的图像更改为 NSFolder 时,什么都没有发生,甚至在界面生成器中也没有。该图标仍然是 Xcode 图标。当我运行构建命令时,文件夹名称的左侧只有一个空格。

从那里我尝试返回一列并添加图像和文本表格单元格视图,但我什至无法让可可绑定使用它。

那么如何在每个文件夹名称的左侧打印显示静态 NSFolder?

编辑:这就是我想要实现的目标:

编辑#2

我尝试实现 NSTableViewDelegate 并添加以下方法:

- (NSView *)tableView:(NSTableView *)tableView
   viewForTableColumn:(NSTableColumn *)tableColumn
                  row:(NSInteger)row
{
    NSTableCellView *cellView = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    if ([tableColumn.identifier isEqualToString:@"FolderImageColumn"]) {
        cellView.imageView.image = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kGenericFolderIcon)];
        return cellView;
    }
    return cellView;
}

但现在我得到了完全空白的行。它们是可点击的,它们会在右侧加载数据,但它们完全是空白的。

【问题讨论】:

    标签: objective-c macos cocoa cocoa-bindings nsimage


    【解决方案1】:

    如果您实现了委托方法,您可以在显示单元格/视图时与它进行交互,并强制文件夹或基于内容/类型任何其他图像。

    【讨论】:

    • 我根据您的建议更新了我的帖子。
    • 我想知道单元格视图标识符是否设置正确?你会在这里依赖这个:[tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    • 我不确定我是否遵循。我设置了我的列标识符并检查以确保我有正确的列。
    • 您的代码应该可以工作,刚刚签入了我的一个项目。重新标识符:您必须使用 NSTableCellView 的视图标识符,也许您不这样做?和表格列一样吗?
    猜你喜欢
    • 2012-11-27
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多