gpt4 book ai didi

ios - UITextField becomeFirstResponder 在动态单元格中不起作用

转载 作者:行者123 更新时间:2023-11-28 18:11:56 26 4
gpt4 key购买 nike

我在 UITableView 的第一个单元格中有 UITextField,每当它更改时,表格也会更改。问题是,当表更新时,该字段失去第一响应者状态,并且 becomeFirstResponder 不会再次成为第一响应者 - 键盘消失。

我在 tableView:didEndDisplayingCell:forRowAtIndexPath: 中调用了 [_searchField becomeFirstResponder],但键盘还是消失了。更新:我之前尝试在 cellForRowAtIndexPath 中调用 becomeFirstResponder,它也没有用。 _searchField 是连接到字段的单元类的导出属性。

我应该在哪里调用 becomeFirstResponder 以便该字段成为第一响应者?或者也许我应该以不同的方式做这件事,这样该领域就不会失去第一响应者的地位?我尝试刷新的不是整个表格,而是单独的部分(搜索字段在其自己的部分中),但它没有用, Controller 试图显示不再存在的单元格,所以我更愿意刷新整个表格。

我知道我可以使用特殊的搜索 Controller ,但我不喜欢它的设计,所以我这样实现了......

谢谢!

最佳答案

实际上,我应该在同一方法中简单地调用 becomeFirstResponder AFTER [self.tableView reloadData],而不是试图在 UITableViewCell 子类或 UITableViewController 中查找表刷新后调用的某些方法类。

我一开始并没有这样做,可能是因为我在调用 [self.tableView reloadData] 的地方没有对单元格的引用。

这是有效的(SOPSearchCell 是 UITableViewCell 的子类,self 是 UITableViewController 的子类实例):

[self.tableView reloadData]
// make searchField first responder again
NSUInteger indexes[] = {0, 0};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexes length:2];
SOPSearchCell *cell = (SOPSearchCell *)[self.tableView cellForRowAtIndexPath: indexPath];
[cell.searchField becomeFirstResponder];

关于ios - UITextField becomeFirstResponder 在动态单元格中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16639280/

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