1

UITextFieldをサブクラス化し、最大文字数を設定するメソッドが必要です。許可された。このサブクラスのinitメソッドで、inputDelegateをselfに設定しようとしましたが、コールバックがトリガーされません。また、これはiOS5のものだけです。私の質問は、キーがタップされたときにイベントを発生させることができるプロトコルまたは通知であり、この制限を達成するためにビューコントローラーにUITextFieldデリゲートを実装する必要はありません。

ありがとう。

4

1 に答える 1

1

このようにして、テキストフィールドのデリゲートクラスを作成できます

.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;


}
于 2012-06-21T11:15:28.317 に答える