我正在尝试在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。
答案 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的另一个怪癖!
我发现,即使NSImageView
是NSView
的属性,也需要通过以下方式添加它:
[xx addSubview:xx.img];
好吧,扮演可可,演奏得非常好! 干杯!