2012-01-15 140 views
0

我正在使用iOS 5上的故事板,並且有一個簡單的屏幕,其上有一個UITextField。我想在用戶點擊「返回」時關閉鍵盤。我跟着其他建議,例如有我的控制器實現了UITextFieldDelegate協議並實現textFieldShouldReturn:如下:在UITextField中退出鍵盤

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

但是我看到這個方法不會被調用。我將故事板中的視圖控制器設置爲我自定義的UIViewController

我也嘗試了不同的實現方式,其中我創建一個名爲IBActiondismissKeyboard奇怪我可以Did Exit動作無法連接到我UITextField

任何想法?

更新:所以問題似乎是我使用UITextView而不是UITextField。我想要一個大面積的文字輸入。當我將輸入字段更改爲UITextField時,它工作正常。有關如何使它與UITextView一起工作的任何想法?

+2

有你'設置= questionField.delegate其中self''self'可能是控制器,你創建了你的'UItextField'?也嘗試實現'textFieldDidEndEditing:'。只要編輯會話完成,就會調用此方法(例如,當用戶關閉鍵盤時)。 – 2012-01-15 16:44:01

回答

0

您應該將dismiss方法連接到文本字段的Did End Editing操作。

+0

我試過這樣做,但奇怪的是,當我選擇行動uner'收到行動',並懸停在uitextfield它不會突出顯示。 – imrank1 2012-01-16 05:13:22

0

因此,爲UITextView退出鍵盤的解決方案是實現shouldChangeTextInRange。

0

如果你想在鍵盤駁回當輕敲了TextView的返回鍵使用該委託功能,

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 

    return YES; 
} 
+0

在這段代碼中,當我們用2段粘貼文本時,它不會粘貼數據 – 2012-09-13 10:53:18