自定义cocoa对象的默认值

时间:2017-08-01 09:37:21

标签: objective-c macos cocoa nstextfield

在创建MyLabel时,我总是设置一些参数,而不是每次都要将它们写出来,我宁愿将它们设置为自定义类的默认值。

我试过这个没有运气:

@interface MyLabel: NSTextField
@end

@implementation MyLabel
-(id)init {
    if (self = [super init]) {
        [self setWantsLayer:YES];
        [self setSelectable:YES];
        [self setEditable:NO];
        [self setBordered:NO];
    }
    return self;
}
@end

初始化没有被调用。

MyLabel被称为:

MyLabel* error_label = [[MyLabel alloc] initWithFrame: ...

1 个答案:

答案 0 :(得分:1)

请勿使用initWithFrame。仅使用init拨打电话。

尝试以下代码

MyLabel* error_label = [[MyLabel alloc] init];

您可以在初始化之后设置帧,如下所示

[error_label setFrame::CGRectMake(0, 0, 0, 0)]; // set co-ordinates accordingly