Как установить делегат текстового поля в Objective -C?

Я хотел бы настроить UITextField, ограничив его четырьмя символами. Я пытаюсь понять, как работают делегаты в Objective-C, и выполнил следующие шаги для реализации этой функциональности, но все еще не смог найти работающее решение.

1 )Создан объект класса LimitedLengthTextField -c. Сделал класс типа UITextFieldи принимает объекты типа .

Лимитедленгстекстфиелд.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 )Импортировал «LimitedLengthTextField.h» в мой класс CreateAccount и попытался установить делегат UITextField «ssnTextField» в viewDidLoadследующим образом (мое приложение принимает последние 4 цифры SSN пользователя ).

// Set the custom SSN textfield delegate
LimitedLengthTextField *custTextField = [[LimitedLengthTextField alloc] init];
[self.ssnTextField setDelegate:custTextField];

Основываясь на моем ограниченном понимании Objective-Cи делегатов, я создал класс, реализовал нужный мне метод делегата, затем создал экземпляр этого класса и присвоил его моему объекту UITextView. Что мне не хватает?

11
задан Meet Doshi 5 February 2016 в 11:59
поделиться

0 ответов