The question: I subclassed a UITextField as "UISelectField" so that I could override the delegate. I then created a UITextField in storyboard and changed its class to UISelectField in the Identity inspector. However, the default init method provided by Xcode, "initWithFrame", does not get called. What init method gets called when creating a UITextField with this approach?

The reason: Right now, I set the delegate in my view controller's init: [self.textField setDelegate:self.textField];. I would like to remove this and replace it with [self setDelegate:self]; in whatever init method gets called. Please tell me if there is a more elegant approach.

有帮助吗?

解决方案

- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom Implementation
    }
    return self;
}

其他提示

On Swift 3:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)

    // Custom Implementation
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top