2011-06-09 64 views
1

我有一個UITableView tableHeaderView在一個nib文件中定義。 tableHeaderView包含一個UITextView。 UITextView的委託設置爲UITableViewController,UITableViewController支持UITextViewDelegate協議。 UITableViewController在tableHeaderView中設置各種屬性,包括UITextView的文本,並且一切正常。但是textFieldShouldReturn:UITableViewController中的(UITextField *)textField永遠不會被調用,並且在點擊UITextView後無法關閉鍵盤。UITextView在tableHeaderView中找不到代理

我已經嘗試了所有可以在文檔和各種帖子中找到的建議,但沒有運氣。我發現的例子都沒有在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; 
} 
+0

你能發表一些代碼嗎? – Kal 2011-06-09 02:37:03

+0

大多數東西通過IB處理,但一些相關代碼添加 – Kwexi 2011-06-09 02:57:29

回答

2

textFieldShouldReturn是UITextFieldDelegate而不是UITextViewDelegate的方法。那可能是你的問題。

+0

doh!謝謝 - 欣賞它。發現這[鏈接](http://stackoverflow.com/questions/703754/how-to-dismiss-keyboard-for-uitextview-with-return-key) – Kwexi 2011-06-09 03:10:19