Я хотел бы настроить 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. Что мне не хватает?