gpt4 book ai didi

iphone - 在搜索方法迭代完成后重新加载/显示 UISearchDisplayController 的 searchResultsTableView

转载 作者:太空狗 更新时间:2023-10-30 03:56:50 24 4
gpt4 key购买 nike

我已经修改了Apple 示例iOS 项目的代码TableSearch为了通过解析其内容来使用它来搜索网络服务。在使用 SearchDisplayController 的 SearchBar 执行搜索时,除了一个丑陋的细节外,我实现的所有内容都运行良好。我更改了 SearchDisplayController 的行为,使其在点击“搜索”按钮时首先调用我的搜索函数。

问题在于,当搜索迭代(在 NSOperationQueue 的后台执行)完成时,“searchResultsTableView”(searchDisplayController 的)不会自动显示或不会分配结果内容。如果您随后更改 SearchBar 的文本或点击触摸搜索字段时出现的 View 中的“取消”按钮(请参阅 TableSearch),正确的 TableView 将与搜索结果一起出现。我只是想让这一步在搜索操作完成后立即执行,所以在您进行交互之前。在此阶段,当前显示“无结果”标签。 “filterContentForSearchText”和“shouldReloadTableForSearchString”方法与原始 TableSearch 项目没有变化。

我查看了 SearchDisplayController 及其属性的不同类引用,但我还找不到任何最终解决方案。

我已经在NSOperation结束后肯定会迭代的部分尝试了以下但它似乎并没有解决问题。

[self.searchDisplayController.searchResultsTableView removeFromSuperview];

self.searchDisplayController.searchResultsTableView.hidden = YES;

这些操作都具有我想要显示的正确 View ,但滚动被禁用,直到您更改状态以便再次隐藏 View 。不过,可以选择 TableView 单元格。我基本上只想启用滚动...

预先感谢您的努力!

最佳答案

我有同样的问题,我刚刚解决了。我有完全相同的问题,我想禁用即时搜索,当我点击搜索按钮时,表格没有加载,但当我点击取消时,它加载了。如果我在搜索后未加载正确结果的 TableView 上滚动,它会因索引超出范围而崩溃。

您需要做的是重新加载 searchResultTableView 而不是当前的 tableview。按搜索词筛选数据后,将

[self.searchDisplayController.searchResultsTableView reloadData]

重新加载您的搜索结果,它会在您点击搜索按钮后显示。希望这有帮助

关于iphone - 在搜索方法迭代完成后重新加载/显示 UISearchDisplayController 的 searchResultsTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702945/

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