UITextField игнорирует inputDelegate? - PullRequest
10 голосов
/ 27 марта 2012

UITextField игнорирует inputDelegate? Используя следующий код:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.textField.inputDelegate = self;
    NSLog(@"textField: %@", self.textField);
    NSLog(@"delegate: %@", self.textField.inputDelegate);
}

Я получаю следующий вывод:

2012-03-26 20:43:49.560 InputTest[33617:f803] textField: <UITextField: 0x6c093a0; frame = (20 20; 280 31); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x6c094d0>>
2012-03-26 20:43:49.561 InputTest[33617:f803] delegate: (null)

Он работает просто отлично, без предупреждения и исключения, а свойство делегата работает просто отлично. Но установка inputDelegate не вызывает изменений, и методы делегата не вызываются.

Ответы [ 2 ]

0 голосов
/ 27 мая 2016

Установите ваш делегат после сеанс редактирования начался.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    [self.myTextfield setInputDelegate:self];
    NSLog(@"Inputdelegate is: %@", self.myTextField.inputDelegate);

    return YES;

}
0 голосов
/ 05 апреля 2012

У меня та же проблема, с которой вы сталкиваетесь.после глубокого поиска я обнаружил, что, хотя протокол UITextInput был в iOS 3.2, но UITextView / Field не использовал этот протокол до iOS 5. Запустите ваш код в iOS 5 или более поздней версии, и он должен работать.

...