我可能会问非常简单的问题,但是我无法摆脱这一问题,要求是,

  1. 表应显示图像和旁边的一些文本。为此,我在表中添加了两个列
  2. NstableView应该是透明的。为此,我在Override DrawRect方法中进行了定制view类,以免绘制背景,并告诉Cell不要进行缩写。
  3. 现在下一个障碍是如何显示图像,我必须覆盖/处理以下方法

.

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{

    NSImage *pCellImage = // Get a valid Image ;

    if(tableColumn == nil ) return nil;

    NSString *colName = [tableColumn identifier];
    if([colName isEqualToString:@"firstColumn"]){
        NSCell *pCell = [[NSCell alloc]initImageCell:pCellImage];
        return pCell;
    }else{
        NSCell *pCell = [[NSCell alloc]initTextCell:@"Some text"];
        return pCell;

    }
}

我添加了tablecolumn == nil条件,如文档所给出的第一次,每行,当我需要为整行设置一个列时,这将用TableColumn NIL调用,但是如果我将其返回其崩溃,则bad_access bad_access bad_access ,,,,

现在我的问题是如何处理零条件,在为这两列设置NSCELL之后,在此功能中,它将转到另一个委托函数

- (id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex

我相信,正确设置数据集后,我不需要使用此功能,

随着以下实施的崩溃,我无法弄清楚,什么错,

我正在设置适当的数据源和委托,

有帮助吗?

解决方案

您是否尝试过调用挫折环彩并传递透明颜色?

[myTableView setBackgroundColor:[[NSColor clearColor]];

如果使用此方法,请记住告诉周围的NSSCrollView不要绘制其背景。

或者,考虑将表的背景作为一个 卡莱尔.

关于在单列中绘制图像和文本的绘制,Apple的开发人员关系已发布了自定义NSCELL, ImageAndTextCell. 。您可以将此单元格与nstableView和nsoutlineview实例一起使用。该自定义单元格在单列中绘制图像和文本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top