2011-02-02 71 views
3

我试图创建一个刚刚从磁盘加载图像的简单ImageView的,但是这是不工作(我把它放在我的applicationDidFinishLoading):NSImageView无法设置图像?

NSString *file = [@"~/update.png" stringByStandardizingPath]; 
NSImage *image = [[NSImage alloc] initWithContentsOfFile:file]; 
[wView setImage:image]; 

显然对NSImageView图像不被设置,因为如果我NSLog [wView图像],我得到(null)。我很确定我在这里犯了一个初学者的错误,但是什么?

文件和图像加载正常;如果我将图像绘制到NSView上,它显示得很好。 wView不是零,我尝试使用默认窗口的视图创建另一个项目,该项目使用initWithFrame:调用setImage的自定义NSImageView子类。依然没有。

+2

你可以NSLog(@“%@”,image);检查是否为空? – David 2011-02-02 20:01:06

+0

`file`变量返回什么? – Eimantas 2011-02-02 20:02:05

回答

1

最有可能的是,wView为零。最常见的原因是当在一个视图的连接中在nib中实例化的类也在代码中第二次被实例化时。

4

(这里有一个实际的帐户OP)

所以事实证明,setImage不上进行了明确的IB构造,如果你明白我的意思的NSImageView工作。我做了一个NSView子类,在它内部构造一个NSImageView并调用setImage,并且工作正常。真的很烦人。