我创建了一个派生自NSImageView的类。但是,没有调用类的构造函数(init),因此我猜测init不是NSImageView的正确初始化器。
NSImageView的正确初始化程序是什么?我检查了manuals,但他们似乎没有提到正确的init函数。谷歌搜索似乎也没有提供任何具体的results。
我找到了一个可能的构造函数:
- (id)initWithFrame:(NSRect)frameRect
但我不确定这是否是正确的。我不太确定frameRect是什么。
NSImageView的默认初始值设定项/构造函数是什么?注意我正在开发一个桌面应用程序,而不是iOS应用程序,如果这有所不同.NSImageView子类对象已通过接口放置在窗口中生成器,不是以编程方式。
答案 0 :(得分:4)
从NSView
派生的类可以使用initWithFrame
以编程方式初始化,或者使用awakeFromNib
从NIB文件加载时。我所做的是调用一个通用的私有方法来执行初始化,无论它们是如何加载的:
// Private methods
@interface MyViewSubclass ()
- (void)_setupView;
@end
@implementation MyViewSubclass
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
[self _setupView];
}
return self;
}
- (void)awakeFromNib
{
[self _setupView];
}
// Common initialisation (called by initWithFrame: and awakeFromNib).
- (void)_setupView
{
// Set stuff up
}
答案 1 :(得分:1)
如果是来自nib / xib,initWithCoder:
-(id)initWithCoder:(NSCoder *)coder