gpt4 book ai didi

ios - 在 TableView 中对文本字段使用 endEditing 时崩溃

转载 作者:行者123 更新时间:2023-11-29 10:47:39 24 4
gpt4 key购买 nike

在我的代码中,我在 UITableView 中有大约 8 个 UITextField,每个都排成一行。我还有一个 UIBarButtonItem,当它被选中时,它会调用方法 hideKeyboard

当用户选择一个文本字段,然后滚动表格 View ,使文本字段不再可见,但键盘保持显示状态,然后点击 uibarbuttonitem,我得到一个 EXC_BAD_ACCESS。

文本字段通过 cellForRowAtIndexPath 以编程方式放置在每一行中。 hideKeyboard 就是[self.view endEditing:YES];

所以我的猜测是,因为 endEditing 搜索作为第一响应者的 textField 并在其上调用 resign 但是当它成为第一响应者并且我以一种它不是的方式滚动 tableview '显示,该单元格必须已被重用并且文本字段必须已被释放..但 endEditing 方法仍会调用它以退出......这可能是崩溃发生的时候。

我考虑过获取最后一个 firstResponder 的引用,但如果它被解除分配,我无论如何都无法辞职。我也不能调用 becomeFirstResponder 然后在随机文本字段中辞职,因为我不知道哪些是当时可见。

有人知道这次崩溃的原因是什么吗?我将如何正确关闭键盘?

最佳答案

也许您可以决定在用户​​将事件文本字段滚动到 View 之外时退出第一响应者状态。您可以在 tableViewDelegate 协议(protocol)方法中执行此操作:

– tableView:didEndDisplayingCell:forRowAtIndexPath:

关于ios - 在 TableView 中对文本字段使用 endEditing 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21861773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com