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;
в моем случае.