NSTextField子类不会通过Interface Builder显示
问题描述:
我创建了NSTextField的子类。 如果我通过代码使用它没有问题,一切都很好,组件按预期工作。 如果我通过Interface Builder使用它,组件就不会显示。NSTextField子类不会通过Interface Builder显示
这里是我的子类inits:
-(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;
}
举例来说,如果我创建了两个部件,一个代码,一个由Interface Builder我只能看到第一个组件,与blueBackground。
任何想法? 谢谢
答
在IB中添加Appkit类的子类时,添加最近的超类并在Identity Inspector中更改类。因此,如果您创建了NSTextField
的子类,请添加NSTextField
并更改类。
是否记录了“initWithCoder”?你是如何在IB中添加文本字段的?你有没有设定价值? – Willeke
已记录InitWithCoder。 我添加了一个customView,我在Identity inspector中更改了Class,然后将引用插口添加到同一个Class的属性中。 我希望至少看到一个红框。但不是。我什么也没看到。 – Talkanian
添加'NSTextField'并更改类。 – Willeke