我创建了一个NSTextField的子类。 如果我通过代码使用它没有问题,一切都很好,组件按预期工作。 如果我通过Interface Builder使用它,组件就不会显示。
以下是我的子类:
-(instancetype)initWithFrame:(NSRect)frameRect{
self = [super initWithFrame:frameRect];
if(self){
[self setAlignment:NSTextAlignmentCenter];
[self setBackgroundColor:[NSColor blueColor]];
[self setBezeled:NO];
[self setEditable:NO];
[self setSelectable:NO];
[self.cell setUsesSingleLineMode:YES];
}
return self;
}
-(instancetype)initWithCoder:(NSCoder *)coder{
self = [super initWithCoder:coder];
if(self){
NSLog(@"initWithCoder");
[self setAlignment:NSTextAlignmentCenter];
[self setBackgroundColor:[NSColor redColor]];
[self setBezeled:NO];
[self setEditable:NO];
[self setSelectable:NO];
[self.cell setUsesSingleLineMode:YES];
}
return self;
}
例如,如果我创建了两个组件,一个是代码,另一个是“接口”构建器,我只能看到第一个组件,带有blueBackground。
有什么想法吗? 感谢
答案 0 :(得分:1)
在IB中添加Appkit类的子类时,添加最近的超类并更改Identity Inspector中的类。因此,如果您创建了NSTextField
的子类,请添加NSTextField
并更改该类。