Ios 在表视图中将endEditing与文本字段一起使用时崩溃
在我的代码中,Ios 在表视图中将endEditing与文本字段一起使用时崩溃,ios,uitableview,uitextfield,exc-bad-access,resignfirstresponder,Ios,Uitableview,Uitextfield,Exc Bad Access,Resignfirstresponder,在我的代码中,UITableView中大约有8个UITextFields,每一个都是一行。我还有一个UIBarButtonItem,选中它时,调用方法hideKeyboard 当用户选择一个文本字段,然后滚动表格视图,使文本字段不再可见,但键盘保持显示状态,然后点击uibarbuttonitem,我将获得EXC_BAD_访问权限 文本字段通过cellforrowatinexpath以编程方式放置在每一行中hideKeyboard只是[self.view endEditing:YES] 所以我的猜
UITableView
中大约有8个UITextField
s,每一个都是一行。我还有一个UIBarButtonItem
,选中它时,调用方法hideKeyboard
当用户选择一个文本字段,然后滚动表格视图,使文本字段不再可见,但键盘保持显示状态,然后点击uibarbuttonitem,我将获得EXC_BAD_访问权限
文本字段通过cellforrowatinexpath
以编程方式放置在每一行中hideKeyboard
只是[self.view endEditing:YES]代码>
所以我的猜测是,由于endEditing
搜索作为第一响应者的textField并对其进行调用,但当它成为第一响应者时,我以未显示的方式滚动了tableview,该单元格必须已被重用,textField必须已被释放。。但是endEditing方法仍然会要求它辞职……这可能是崩溃发生的时候
我想得到最后一个第一响应者的推荐信,但如果它被处置了,我无论如何也不能放弃。。我也不能打电话给becomeFirstResponder然后在一个随机的文本字段中辞职,因为我不知道当时哪些是可见的
有人知道这次车祸的原因吗?如何正确关闭键盘?如果用户将活动文本字段滚动到视图之外,您可能会决定退出第一响应者状态。您可以在tableViewDelegate协议方法中执行此操作:
–tableView:DiEndDisplayingCell:forRowAtIndexPath: