2011-07-26 31 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