4

我正在尝试将图像放在视图中。这是我的代码:

NSImageView *imView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 480, 360)];
    NSImage *myImage = [[NSImage alloc] initByReferencingFile:@"image.png"];
    [imView setImage:myImage];
    [theView addSubview:imView];
    [window setContentView:theView];

但是窗口是空白的(没有绘制图像)。例如,如果我在视图中放置一个文本字段.. 它工作得很好,但不是 NSImageView...我检查了控制台,没有警告/错误消息...谢谢!

4

1 回答 1

9

由于[imView isValid]返回 false,这意味着NSImage无法基于该文件创建图像。一个常见的原因是找不到该文件。从 的文档中-initByReferencingFile:

文件名 一个完整的或相对的路径名,指定具有所需图像数据的文件。相对路径必须相对于当前工作目录。

这意味着 的行为-initByReferencingFile:取决于当前目录,理想情况下您应该传递完整的路径名。

一个更好的解决方案是使用+imageNamed:它,原因有两个:它使用图像缓存,并且能够在应用程序包中查找文件。

于 2011-04-11T05:11:28.337 回答