UITextViewDelegate методы, не вызываемые (UITextView в UITableViewCell)

Я должен делать что-то в корне неправильно, мои методы реализации для UITextViewDelegate не запускаются. У меня есть UITextView, который является подпредставлением UITableCellView, и делегаты не вызываются.

- (void)textViewDidBeginEditing:(UITextView *)textView {

    NSLog(@"textViewDidBeginEditing");
    // never called...
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    NSLog(@"shouldChangeTextInRange");  
    // never called... 
}

Предложения? Я не знаю, имеет ли это значение, но протокол явно указан в моем объявлении @interface.

@interface DetailViewController () <UITextViewDelgate, ..., ....>

Спасибо!

2 ответа

Решение

Вы должны добавить textViewObj.delegate = self или дать делегатское соединение для этого свойства текстового представления в xib-файле, тогда оно должно работать и запускать все методы делегата UITextView.

Пара указателей на это на основе моего опыта:

1) Проверьте, используете ли вы UITextField или UITextView.

2) В зависимости от типа используемого текстового поля добавьте следующую декларацию в декларацию интерфейса.

@interface MyInterface : UIViewController<UITextFieldDelegate>
                      or
@interface MyInterface : UIViewController<UITextViewDelegate>

3) Зарегистрируйте ваш контроллер в качестве делегата для вашего текстового поля:

[myTextField setDelegate:self];

4) Переопределите желаемый метод, который

 -(void)textFieldDidBeginEditing:(UITextField *)textField
              or
 - (void)textViewDidBeginEditing:(UITextView *)textView;

в моем случае.

Другие вопросы по тегам