1

为什么 NSImage 绘制在 NSTableView 的 NSCell 中翻转。以及如何正确解决该行为。我从数据源方法返回图像:

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
return [NSImage imageNamed: @"test.png"];
}

作为解决方法,我尝试了:

[NSImage setFlipped:NO];

一切都很好,但正如文档所说,它已弃用方法

osx 10.7-10.9

4

2 回答 2

0

是我刚刚遇到的一些信息。

基本上根据你必须的链接:

  1. 在要显示图像的列中拖动图像单元格

  2. 返回一个用你的图像初始化的 NSImageCell,如下所示:

    - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 
    {
        NSCell *imageCell = [[NSCell alloc] initImageCell:[NSImage imageNamed: @"test.png"]];
        return imageCell;
    }
    
于 2014-02-04T15:51:15.030 回答
0

我通过替换从以下位置获取图像的代码解决了问题:

return [NSImage imageNamed: @"test.png"];

到:

NSData * imageData = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForImageResource: test.png]];
return [[NSImage alloc] initWithDataIgnoringOrientation:imageData];

我不知道这种行为的原因和文档没有告诉我。但如果你解释一下,我会很高兴的。

于 2014-03-27T09:35:45.593 回答