1

UITextField をサブクラス化し、その rightView プロパティにカスタム ボタンを割り当てたいと考えています。サブクラスの setFrame にボタンを設定します。

私のテキストフィールドはViewControllerにアウトレット接続があり、クラスはInterface BuilderのIdentity Inspectorのサブクラスに設定されていました。

問題は、カスタム ボタンが表示されないことです。

この問題を克服しようとして、サブクラスに setupRightView メソッドを作成しました。次に、View Controller からアウトレット プロパティで 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 に答える