我有一个textField被设置为改变tableView的数据源与输入(并调用reloadData)的每个字母。UITableView reloadData导致UITextField resignFirstResponder
但由于某些原因,每次输入字母时,键盘被驳回。
任何人都知道为什么?
我有一个textField被设置为改变tableView的数据源与输入(并调用reloadData)的每个字母。UITableView reloadData导致UITextField resignFirstResponder
但由于某些原因,每次输入字母时,键盘被驳回。
任何人都知道为什么?
你的文本字段辞职,因为重载单元发送-resignFirstResponder
消息,由于他们的生存是不是一个重装后保证。有关更多信息,请参阅此related问题。
一个很好的解决方法是增加一个隐藏的文本框的视图,切换重装表时重点转移到该文本框。重新加载表格后,您可以将焦点切换回原始文本字段,以保持该键盘处于打开状态。 [self.fakeTextField becomeFirstResponder]; [self.tableView reloadData]; [self.textField performSelector:@selector(becomeFirstResponder)withObject:nil afterDelay:.01]; – hobosf 2015-06-12 19:27:19
使用此方法textFieldShouldReturn:
并在yourClass.h文件中添加UITextFieldDelegate
委托。将代表设置为yourTextfield并在viewDidLoad
方法中写下以下代码。
yourTextfield.delegate = self;
,并实现textFieldShouldReturn:
如下的
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
[theTextField resignFirstResponder];
return YES;
}
我认为这将是对你有所帮助。
发布开始编辑您的文本字段和任何其他相关方法的方法的代码,我们不能帮助你,如果我们不能看到问题是什么。的 – 8vius 2012-07-07 05:41:18
可能重复[UITableView的reloadData辞职第一响应(http://stackoverflow.com/questions/6409370/uitableview-reloaddata-resigns-first-responder) – CodaFi 2012-07-07 05:43:41
@CodaFi你钉它。 textField位于表格顶部的自定义单元格中,因此当我重新装入数据时,它也会重新加载该单元格,从而使其内部的任何内容都被取消。谢谢!!! – 2012-07-07 16:31:03