在创建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: ...

最佳答案

不要使用initWithFrame。仅使用init呼叫。

尝试下面的代码

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


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

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

关于objective-c - 自定义 cocoa 对象的默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45434225/

10-09 16:16