【发布时间】:2016-11-05 08:08:19
【问题描述】:
我创建了一个 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;
}
例如,如果我创建两个组件,一个由代码创建,一个由界面生成器创建,我只能看到第一个组件,带有蓝色背景。
有什么想法吗? 谢谢
【问题讨论】:
-
是否记录了“initWithCoder”?您是如何在 IB 中添加文本字段的?你设置了一个值吗?
-
InitWithCoder 已记录。我添加了一个customView,在身份检查器中更改了类,然后将引用插座添加到同一类的属性中。我预计至少会看到一个红框。但不是。我什么也没看到。
-
添加
NSTextField并更改课程。 -
非常感谢!!!!!!!尝试做一个回答帖子,我认为这对其他人有用!
标签: objective-c cocoa nstextfield