2012-11-06 26 views
1

我有一個UIViewController,並在其上創建了一個小的UIView(子視圖)。當我點擊一個按鈕時,這個視圖懸停在屏幕的中心。問題是我得到UITextField在額外的UIView,我似乎無法得到返回鍵工作。子視圖上的UITextField返回鍵

雖然我將我的IBAction設置爲文本字段的「編輯結束」事件,但當單擊返回鍵時,IBAction未運行。

我在做什麼錯?

+0

你能顯示一些代碼嗎?您是否已**將文本字段委派給文件所有者? – esh

回答

0

您只需設置您的代理,例如: - yourtextfile.delegate=self;,也不要忘了在添加委託方法.h文件中

@interface contacts_detailView : UIViewController<UITextFieldDelegate>

,然後委派textFieldDidEndEditing

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
//your new view apear code here 
    [textField resignFirstResponder]; 
} 
0

確保UITextFieldDelegate在接口

+0

我已在接口上有。雖然我不確定這是必須的。總之,它沒有解決問題 –

+0

添加代表到您的文本域 textfiled.delegate = self –

0

點擊「Return」不會觸發「Editing did end」事件。只有當您在UITextField上調用resignFirstResponder時,纔會看到事件觸發。

你應該做的是設置你的UIViewController爲的UITextField的代表和實現方法

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

最後!非常感謝!我不知道爲什麼其他人不工作,但這一個確實如此。我很肯定我曾經看到一次,將「IBAction」附加到「End Editing」事件中,但我會檢查那一個。再次感謝。 –

+0

如果我的回答對您有幫助,請考慮將其標記爲正確答案。 –

0

首先,委託這樣的TextField對文件的所有者:

yourtextField.delegate = self在viewDidLoad中。

,然後添加到這個視圖控制器

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

它應該工作。

0

沒有必要爲關鍵板返回編寫更多代碼。請將它寫入您的.m文件中,它可以用於任意數量的文本字段,不需要再次爲不同的文本字段再次寫入。

在你的.h文件中使用<UItextfieldDelegate>。然後在nib文件中與fileowner進行連線。

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
    { 
    [self.view endEditing:YES]; 
    return YES; 
    }