NSImageView setImage不会设置图像

时间:2014-04-11 16:21:08

标签: objective-c cocoa nsimage nsimageview

我正在尝试在Cocoa项目中为NSImageView实例对象设置图像。我的代码如下所示:

itemTableCellView * xx = [tableView makeViewWithIdentifier:@"MainCell" owner:self];
    xx.label.stringValue = [tempCi simpleTxt];
    xx.img = [[NSImageView alloc]initWithFrame:CGRectMake(48, 48, 48, 48)]];
    NSImage * localimage = [NSImage imageNamed:@"menubar icon"];
    [xx.img setImage:localImage];
    return  xx;

变量img的类型为NSImageView。变量localImage加载正确的图像,我已在日志中检查过它。变量lable已正确初始化并获得正确的值

我只是继续在我的应用程序中获取空的NSImageViews。

4 个答案:

答案 0 :(得分:2)

您的NSImageView初始化时没有尺寸(它的框架等于NSZeroRect),您也不会将图片视图添加到任何子视图。

答案 1 :(得分:1)

你应该使用

xx.img = [[NSImageView alloc] initWithFrame:CGRectMake(x, y, width, height)];

或者,也许,因为img是属性,你根本不需要初始化它? 只需使用

xx.img.frame=CGRectMake(x, y, width, height);

答案 2 :(得分:1)

创建NSimageView时,请尝试执行initwithframe:。这将设置NSImageView的大小。我相信你可能会画一个零大小的矩形。

答案 3 :(得分:1)

好吧,又是Objective-C的另一个怪癖!

我发现,即使NSImageViewNSView的属性,也需要通过以下方式添加它:

[xx addSubview:xx.img];   

好吧,扮演可可,演奏得非常好! 干杯!