如何从子类中正确设置超类属性

时间:2012-12-01 21:02:23

标签: iphone objective-c ios

我正在为UITextField创建子类,并希望为其rightView属性分配一个自定义按钮。 我在子类的setFrame中设置了按钮。

我的textfields在ViewController和Class中将它们的出口连接设置为Interface Builder中Identity Inspector中的子类。

问题是我的自定义按钮没有出现。

我试图克服这个问题,并在我的子类中创建了一个setupRightView方法。 然后,当我从View Controller调用outlet属性上的setupRightView时 - 瞧 - 一切正常![/ p>

我对Objective-C很新,我想我对对象模型犯了一些愚蠢的错误。 为什么我无法在我的子类中正确设置rightView属性?

1 个答案:

答案 0 :(得分:1)

你还记得这样做:

self.rightViewMode = UITextFieldViewModeAlways;

默认情况下,该属性设置为UITextFieldViewModeNever,因此如果不包含该行,则不会看到按钮。

编辑之后:我检查了将我的代码放在setFrame中,它在那里没有用 - 不知道为什么。如果我把它放在awakeFromNib中,它工作正常。

-(void)awakeFromNib {
    UIButton *myButton = [UIButton buttonWithType:2];
    self.rightView = myButton;
    self.rightViewMode = UITextFieldViewModeAlways;
}