问题: 我将UITextField子类化为“UISelectField”,以便我可以覆盖委托。然后,我在故事板中创建了一个UITextField,并在Identity检查器中将其类更改为UISelectField。但是,Xcode提供的默认init方法“initWithFrame”不会被调用。使用这种方法创建UITextField时会调用哪个init方法?
原因:
现在,我在视图控制器的init中设置了委托:[self.textField setDelegate:self.textField];
。我想删除它,并在调用任何init方法时用[self setDelegate:self];
替换它。请告诉我是否有更优雅的方法。
答案 0 :(得分:4)
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
// Custom Implementation
}
return self;
}
答案 1 :(得分:0)
在Swift 3上:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// Custom Implementation
}