UITextView в tableHeaderView не может найти делегата - PullRequest
1 голос
/ 09 июня 2011

У меня есть UITableView tableHeaderView, определенный в nib-файле.TableHeaderView содержит UITextView.Для делегата UITextView задан UITableViewController, а UITableViewController поддерживает протокол UITextViewDelegate.UITableViewController устанавливает различные свойства в tableHeaderView, включая текст UITextView, и все это прекрасно работает.Но textFieldShouldReturn: (UITextField *) textField в UITableViewController никогда не вызывается, и я не могу закрыть клавиатуру после нажатия UITextView.

Я перепробовал каждое предложение, которое я могу найти в документахи разные посты, но не везет.Ни один из примеров, которые я обнаружил, не имеет такого конкретного случая UITextView внутри tableHeaderView.

Есть ли что-то особенное, что мне нужно сделать.Кто-нибудь сделал это успешно?

Я пытался установить делегат UITextView в коде, но безуспешно.

@class Decision;

@interface DecisionDetailViewController : UITableViewController <UINavigationControllerDelegate, UITextViewDelegate> {

    Decision *decision;

    UIView *tableHeaderView;    
    UITextView *nameTextField;
}

@property (nonatomic, retain) Decision *decision;
@property (nonatomic, retain) IBOutlet UIView *tableHeaderView;
@property (nonatomic, retain) IBOutlet UITextView *nameTextField;

@end


@implementation DecisionDetailViewController

@synthesize decision;
@synthesize tableHeaderView;
@synthesize nameTextField;

- (void)viewDidLoad {
    self.navigationItem.rightBarButtonItem = self.editButtonItem;

    if (tableHeaderView == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"DecisionDetailHeader" owner:self options:nil];
        self.tableView.tableHeaderView = tableHeaderView;
    }
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
     [nameTextField resignFirstResponder];
     return YES;
}

1 Ответ

2 голосов
/ 09 июня 2011

textFieldShouldReturn - это метод UITextFieldDelegate, а не UITextViewDelegate. Это, вероятно, ваша проблема.

...