NSImageView无法正常工作?

时间:2011-04-11 04:50:14

标签: objective-c cocoa nsview nsimageview

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

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 ...我检查了控制台,没有警告/错误消息...... 谢谢!

1 个答案:

答案 0 :(得分:9)

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

  

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

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

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