在我的代码中,我在 a中有大约 8UITextField
秒UITableView
,每一个都是连续的。我也有一个UIBarButtonItem
选择时调用方法hideKeyboard
。
当用户选择一个文本字段,然后滚动表格视图以使文本字段不再可见但键盘保持显示,然后点击 uibarbuttonitem 我得到一个 EXC_BAD_ACCESS。
文本字段以编程方式放置在每一行中,通过cellForRowAtIndexPath
. hideKeyboard
简直就是[self.view endEditing:YES];
。
所以我的猜测是,由于endEditing
搜索作为第一响应者的 textField 并在其上调用 resign 但是当它成为第一响应者并且我以未显示的方式滚动 tableview 时,该单元格必须已被重用并且文本字段必须已被释放..但 endEditing 方法仍会调用它来辞职……那是可能发生崩溃的时候。
我想过获得最后一个 firstResponder 的引用,但如果它被释放,我无论如何都无法辞职..我也不能调用 becomeFirstResponder 然后在随机文本字段中辞职,因为我不知道哪些是可见的时间。
有谁知道这次崩溃的原因是什么?我将如何正确关闭键盘?