initWithCoder如何与Interface Builder结合使用?

时间:2014-02-17 12:04:14

标签: ios initialization interface-builder xib nscoder

我有一个来自UITextField的子类,我在Interface Builder中用来构建我的视图(所以我直接在Interface Builder中将此对象的类设置为MyCustomTextField。)

现在,我了解到当加载视图时,将调用initWithCoderMyCustomTextField的方法,以便我可以执行一些初始化操作。但是,我还发现我使用Attribute Inspector在Interface Builder中设置的属性没有按照我设置的方式进行初始化!

有谁知道为什么会这样,我怎么能设法将MyCustomTextField实例的属性设置为我在Interface Builder中的Attribute Inspector中设置的值?

1 个答案:

答案 0 :(得分:0)

您可能没有从此方法的自定义覆盖中调用[super initWithCoder:coder]。数据从nib存档加载到此超级实现中的UIView实例中。正确的实现应该如下:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (nil != self) {
        // extra initialization code
    }
    return self;
}