Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在表视图中将endEditing与文本字段一起使用时崩溃_Ios_Uitableview_Uitextfield_Exc Bad Access_Resignfirstresponder - Fatal编程技术网

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: