tableHeaderView中的UITextView无法找到委托

时间:2011-06-09 02:34:21

标签: iphone ios uitableview uitextviewdelegate

我在nib文件中定义了一个UITableView tableHeaderView。 tableHeaderView包含一个UITextView。 UITextView的委托设置为UITableViewController,UITableViewController支持UITextViewDelegate协议。 UITableViewController在tableHeaderView中设置各种属性,包括UITextView的文本,一切正常。但textFieldShouldReturn :( UITextField *)UITableViewController中的textField永远不会被调用,我点击UITextView后无法关闭键盘。

我已经尝试了我可以在文档和各种帖子中找到的所有建议,但没有运气。我发现的所有示例都没有在tableHeaderView中具有UITextView的特定情况。

我需要做些什么特别的事。有人这么成功吗?

我已尝试在代码中设置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 个答案:

答案 0 :(得分:2)

textFieldShouldReturn是UITextFieldDelegate的方法,而不是UITextViewDelegate。那可能是你的问题。