NSTextField子类不会通过Interface Builder显示

时间:2016-11-02 11:09:11

标签: objective-c cocoa nstextfield

我创建了一个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。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:1)

在IB中添加Appkit类的子类时,添加最近的超类并更改Identity Inspector中的类。因此,如果您创建了NSTextField的子类,请添加NSTextField并更改该类。