1

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.

4

2 回答 2

4
- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Custom Implementation
    }
    return self;
}
于 2013-07-19T16:10:15.210 回答
0

在 Swift 3 上:

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

    // Custom Implementation
}
于 2016-11-02T17:02:14.897 回答