UITextFieldをサブクラス化し、最大文字数を設定するメソッドが必要です。許可された。このサブクラスのinitメソッドで、inputDelegateをselfに設定しようとしましたが、コールバックがトリガーされません。また、これはiOS5のものだけです。私の質問は、キーがタップされたときにイベントを発生させることができるプロトコルまたは通知であり、この制限を達成するためにビューコントローラーにUITextFieldデリゲートを実装する必要はありません。
ありがとう。
UITextFieldをサブクラス化し、最大文字数を設定するメソッドが必要です。許可された。このサブクラスのinitメソッドで、inputDelegateをselfに設定しようとしましたが、コールバックがトリガーされません。また、これはiOS5のものだけです。私の質問は、キーがタップされたときにイベントを発生させることができるプロトコルまたは通知であり、この制限を達成するためにビューコントローラーにUITextFieldデリゲートを実装する必要はありません。
ありがとう。
このようにして、テキストフィールドのデリゲートクラスを作成できます
.mファイル
@implementation LimitedTextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField.text.length >= 5 && ![string isEqualToString:@""])
return NO;
return YES;
}
@end
.hファイル
@interface LimitedTextFieldDelegate : UITextField<UITextFieldDelegate>
@end
UITextFieldサブクラスで次の手順を実行します
- (id)init
{
self = [super init];
if (self) {
//limitedDelegate is a property of your textfield subclass
self.limitedDelegate = [[LimitedTextFieldDelegate alloc] init];
self.delegate = self.limitedDelegate;
}
return self;
}