2013-08-29 60 views
1

我做了NSImageView的一个子类,因为我想定制一些mouseClick事件。但是,我还没有开始,出了什么问题。我制作了NSImageView子类:NSImageView子类没有显示图像

(File/New/File .../Cocoa(Objective-C Class)/ Class = NSImageViewMENSImageView的子类)。

就是这样。我已经导入NSImageViewME.h并在代码中,我创建图像,并将它们添加到我的NSView

NSImageView *imageView = [[NSImageView alloc] initWithFrame:frame]; 
[imageView setImage:image]; 
[self addSubview:imageView]; 

心中已经刚刚更换NSImageViewNSImageViewME,并且不显示图像。所以,很明显,当我使用NSImageView,一切工作正常,但当我使用NSImageViewME(未触及的子类)图像没有显示...我检查,initWithFrame被调用,setImage被调用,但图像未显示。 ..有什么可以解决的问题?干杯。

+1

1.你应该用你的'NSImageViewME'类职位的代码来代替。 2.你是否为你的子类注释掉了空的'drawRect:'实现,或者是否调用了'super'? –

回答

1

评论了这一点:

(void)drawRect:(NSRect)dirtyRect 
+0

如果他的子类已经重写了drawRect:方法(并且不调用[super drawRect:dirtyRect]),那么永远不会调用NSImageView类实现中的图像绘制方法(drawRect :)。 – geowar