Ответ 1
Вы должны добавить textViewObj.delegate = self или предоставить делегированное соединение для этого свойства текстового вида в файле xib, затем он должен работать и запускать все методы делегатов UITextView.
Я должен делать что-то принципиально неправильное, мои методы реализации для 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, ..., ....>
Спасибо!
Вы должны добавить 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;
в моем случае.