【问题标题】:NSTextField Subclass won't show via Interface BuilderNSTextField 子类不会通过 Interface Builder 显示
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多