2011-07-26 67 views
4

我有一個UITableView在每個單元中包含UITextField。當用戶點擊UITextField,如預期的那樣,鍵盤將彈出。UITableViewCell和resignFirstResponder

我已經在我的代理tableView: didSelectRowAtIndexPath:方法中執行了解除鍵盤用resignFirstResponder發送到最後使用的UITextField

如果顯示最後使用UITextField的單元格,則一切正常。

現在,如果我向下滾動到tableview的底部並按下一行,那麼resignFirstResponder將發送到隱藏的UITextField,並且不會隱藏鍵盤。它也不會拋出錯誤。

如何在這種情況下隱藏鍵盤?

+0

爲什麼不使用返回鍵? – Legolas

+0

鍵盤類型是數字鍵盤... – CristiC

回答

4

看一看UITextFieldDelegate,把

[textField resignFirstResponder]; 

方法中的回調函數之一。我特別喜歡:

- (BOOL)textFieldShouldReturn:(UITextField *)textField; 
+0

- (BOOL)textFieldShouldReturn:(UITextField *)textField;在我的情況下根本不叫。 – CristiC

+0

當單擊返回/完成按鈕時調用此方法。如果這不適合你,你應該選擇另一個動作的回調。 –

+1

我的鍵盤類型是數字鍵盤,所以我沒有返回/完成按鈕。我不需要它來做任何事情,所以我認爲這種方法是行不通的。 – CristiC

0

您是否嘗試撥打的endEditing:YES方法?

+0

這將做什麼? – CristiC

+0

鍵盤類型是數字鍵盤 – CristiC

+0

這應該使第一響應者辭職。鍵盤類型無關緊要。不知道這會工作,但你可以試試:) – Saphrosit

0
-(IBAction)hidekey:(id) sender{ 

[textField resignFirstResponder]; 
} 
如果您使用界面生成器,然後選中文本字段的插座,並在上面的函數.m文件的使用和定義該文本字段

。它會工作。

+0

什麼事件? – CristiC

+0

你想問什麼?我給這個隱藏鍵盤。 – ram

+0

請詳細解釋......「如果您使用Interface Builder然後檢查文本字段的出口」,您是什麼意思?特別是「然後檢查文本場的出口」? – CristiC