UITextField
aを 4 文字に制限してカスタマイズしたいと思います。デリゲートがどのように機能するかを理解しようとしObjective-C
ており、次の手順を実行してこの機能を実装しましたが、まだうまく機能するソリューションが得られていません。
1) LimitedLengthTextField Objective-C クラスを作成しました。タイプのクラスをUITextField
作成し、タイプ < UITextFieldDelegate > のオブジェクトを受け入れます。
LimitedLengthTextField.h:
@interface LimitedLengthTextField : UITextField <UITextFieldDelegate>
@end
2) LimitedLengthTextField.m に次のメソッドを実装しました。
@implementation LimitedLengthTextField
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return (newLength > 4) ? NO : YES;
}
@end
3) CreateAccount クラスに "LimitedLengthTextField.h" をインポートし、次のように UITextField "ssnTextField" のデリゲートを設定しようとしましたviewDidLoad
(私のアプリはユーザーの SSN の最後の 4 桁を受け入れます)。
// Set the custom SSN textfield delegate
LimitedLengthTextField *custTextField = [[LimitedLengthTextField alloc] init];
[self.ssnTextField setDelegate:custTextField];
とデリゲートに関する私の限られた理解に基づいてObjective-C
、クラスを作成し、必要なデリゲート メソッドを実装してから、そのクラスのインスタンスを作成し、それを UITextView オブジェクトに割り当てました。私は何が欠けていますか?