esp*_*esp 0 objective-c uitableview uitextfield first-responder ios
我在UITableView的第一个单元格中有UITextField,每当它改变时,表也会发生变化.问题是当表更新时,字段失去第一响应者状态并且becomeFirstResponder不再使其成为第一响应者 - 键盘消失.
我[_searchField becomeFirstResponder]在tableView中调用:didEndDisplayingCell:forRowAtIndexPath:但是键盘无论如何都会消失.更新:我之前尝试在cellForRowAtIndexPath中调用了becomeFirstResponder,它也没有用._searchField是连接到该字段的单元类的outlet属性.
我应该在哪里打电话,becomeFirstResponder以便该字段成为第一响应者?或者也许我应该以不同的方式做到这一点,以便该字段不会失去第一响应者状态?我尝试刷新整个表,但是单独的部分(搜索字段在它自己的部分中),但是它不起作用,控制器试图显示不再存在的单元格,所以我更喜欢刷新整个表格.
我知道我可以使用特殊的搜索控制器,但我不喜欢它的设计,所以我用这种方式实现它...
谢谢!
实际上,我应该[self.tableView reloadData]在同一个方法中简单地调用yesFirstResponder AFTER ,而不是试图找到在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];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4327 次 |
| 最近记录: |