Недействительные методы 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, ..., ....>

Спасибо!

Ответ 1

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

Ответ 2

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

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;

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