1

TextFieldView というカスタム ビュー クラスがあり、ペン先から初期化されています...

+ (TextFieldView *)textFieldView {
    NSArray *nibObjects = [[NSBundle mainBundle]
                           loadNibNamed:@"TextFieldView"
                                  owner:nil
                                options:nil];
    return (TextFieldView *)[nibObjects objectAtIndex:0];
}

EmailTextFieldView というサブクラスを作成しようとしていますが、初期化子の書き方がわかりません。私の現在のアプローチは...

+ (EmailTextFieldView *)emailTextFieldView {
    return (EmailTextFieldView *)[EmailTextFieldView textFieldView];
}

これは、EmailTextFieldView を作成して EmailTextFieldView メソッドを呼び出すたびに、そのメソッドが実装されていない TextFieldView サブクラスにメッセージが送信されるためにクラッシュするため、クラッシュを引き起こしています。nib から作成されたビューのサブクラスのイニシャライザを作成するにはどうすればよいですか?

あなたの知恵に感謝します!

4

1 に答える 1

1

nib は、Identity Inspector 内のクラスを指定します。TextFieldView nib をロードしていて、それが TextFieldView のカスタム クラスで設定されている場合、ほとんどそのオブジェクトにバインドされています。

ニブ

サブクラスを作成する場合は、Identity Inspector で別の nib を EmailTextFieldView に設定する必要があります。

于 2012-11-20T19:48:00.080 に答える