1

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

我的文本字段在 ViewController 和 Class 中的出口连接设置为我在 Interface Builder 的 Identity Inspector 中的子类。

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

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

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

4

1 回答 1

1

您是否记得这样做:

self.rightViewMode = UITextFieldViewModeAlways;

该属性默认设置为 UITextFieldViewModeNever,因此如果不包含该行,您将看不到您的按钮。

编辑后:我检查了将我的代码放入 setFrame 中,但它在那里不起作用——不知道为什么。如果我把它放在 awakeFromNib 中效果很好。

-(void)awakeFromNib {
    UIButton *myButton = [UIButton buttonWithType:2];
    self.rightView = myButton;
    self.rightViewMode = UITextFieldViewModeAlways;
}
于 2012-12-01T21:49:03.150 回答