问题标签 [uisearchdisplaycontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7297 浏览

iphone - 带有 UISearchBar 和 UITableView 的 UISearchDisplayController - 如何避免“实时结果”?

我已经使用 UISearchDisplayController 和 UITableView 实现了一个 SearchBar 来显示搜索结果。我正在使用 libxml2 和 xpath 来解析 HTML 网站并搜索源代码中所需的内容。由于我是 ObjC 的新手,所以我使用 Apple 提供的示例项目 TableSearch 作为搜索和显示部分的开始。一切正常,我可以解析网站中的特定内容,并在它们出现在网站上时正确组合它们,并将它们显示在不同的 TableView 行的视图中。我想使用用户输入来搜索特定网站。我只有以下问题:

如果您查看项目TableSearch(类 MainViewController.m),您会注意到它更新了“filteredListContent”并重新加载 TableView,并在用户键入时自动显示它:

您可以想象,当我使用我的实现进行解析和搜索时它需要一些内存,并且当用户键入以显示“实时结果”时重复调用它时尤其重要。当我只使用我的块的第一行进行解析和搜索(使用 URL 初始化 NSData 对象)时,SearchBar 开始滞后并在输入每个字符后延迟几秒钟。当我使用整个块时,应用程序崩溃。我的问题如下:

如何在执行搜索之前等待键盘上的“搜索”或“返回”按钮被点击,或者我在哪里以及如何检查按钮是否被点击?对不起这个可能微不足道的问题。

0 投票
2 回答
3448 浏览

iphone - 表视图中的 SearchBar 与 searchDisplayController 以编程方式无编辑

我正在尝试在表格的标题视图内创建一个带有搜索栏的表格视图。我想使用 searchDisplayController 来管理所有内容。我以编程方式创建了所有内容(我对 IB 感到不舒服)试图设置所有正确的属性,但似乎我遗漏了一些东西,因为当表格出现时我无法编辑文本搜索栏并查看任何动画。这是代码的一部分:

我知道当您单独使用搜索栏时,您必须处理它的委托协议,但我猜测 searchDisplayController 会为您管理,如 Apple 示例代码中所示。(建立与 IB)。

有什么建议吗?谢谢你,安德里亚

0 投票
2 回答
8711 浏览

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

我修改了 Apple 的示例 iOS 项目TableSearch的代码,以便通过解析其内容来使用它来搜索 Web 服务。在使用 SearchDisplayController 的 SearchBar 执行搜索时,除了一个丑陋的细节之外,我实现的所有东西都可以正常工作。我更改了 SearchDisplayController 的行为,使其在点击“搜索”按钮时首先调用我的搜索功能。

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

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

我在 NSOperation 完成后肯定会迭代的部分中尝试了以下内容,但似乎并没有解决问题。

这些操作都具有我想要显示的正确视图,但是在您更改状态以使视图再次隐藏之前,滚动被禁用。不过,可以选择 TableView 单元格。我基本上只想启用滚动功能...

提前感谢您的努力!

0 投票
2 回答
3717 浏览

iphone - 当 UISearchDisplayController 处于非活动状态时保持搜索词可见

我的应用程序使用UISearchDisplayController. 当用户输入搜索词时,我希望它在搜索栏中保持可见。如果用户选择匹配的结果之一,则此方法有效,但如果用户单击“搜索”按钮则无效。

这有效:

但是如果我在-searchBarSearchButtonClicked:文本中做同样的事情不会留在搜索栏中。关于在这种情况下如何实现这一点的任何想法?

相关,如果我设置搜索栏的文本(但保持UISearchDisplayController非活动状态),则会触发 searchResultsTableView 的显示。我只想在用户点击搜索栏时显示这一点。

编辑:找到了一种解决方法来设置搜索栏的文本,而不在任何时候显示 searchResultsTableView:

更好的建议仍然欢迎!

0 投票
2 回答
5628 浏览

iphone - NSComparisonResult search part of a string?

I am using NSComparisonResult with my SearchController:

If I search for a string it will only find the result if it starts with that string.

Record is "My Art Gallery"

  • Search for "My Art Gallery" <--- Found

  • Search for "My " <--- Found

  • Search for "Art" <--- Not Found

  • Search for "Gallery" <--- Not found

How can I change my code so that I can find parts of the string as I showed above?

0 投票
2 回答
613 浏览

iphone - iPhone - UITableViewController 和核心数据行在 tableView 中重复

我是 Cocoa 和 Core Data 的新手,遇到了一个奇怪的问题。我成功地创建了核心数据模型,导入了数据,制作了 UI(导航控制器、带有 searcDdisplayController 的 tableViewController),但现在我遇到了一个问题。如果我实现一个UITableViewController (在nib文件中没有UITableView),从fetchedResultsController获取的结果很奇怪——行数是正确的(500 行),但它们会重复自己——只有 8 个不同的行。

但是,我可以通过添加来解决这个问题@synthesize tableView;在.m文件中。

然后我遇到了另一个问题 - 当我单击一行并推送详细信息视图,然后单击导航控制器上的后退按钮时,tableView 中的选定行仍然处于选中状态。

我希望我清楚出了什么问题。让我回顾一下:如果我不放@synthesize tableView;在实现文件的顶部,该行的取消选择工作正常,但结果错误 - 8 行(共 500 行)在 tableView 中重复。如果我把它@synthesize放在文件中,tableView 中的数据是正确的,但是当我用导航控制器返回 tableView 时没有动画。

我还尝试将UITableView放在listviewcontroller的 nib 文件中,但结果是相同的 - 没有取消选择该行。我还尝试取消选择viewWillAppear委托中的行,但indexPath of the indexPathForSelectedRownull

哦,我正在使用NSFetchedResultsController。就像我说的 - 获取的结果是正确的,但似乎它们没有正确地馈送到 tableview (如果它没有合成..)

谢谢!

0 投票
2 回答
6962 浏览

iphone - UISearchDisplayController - 单击取消按钮时的方法

我有一个 UISearchDisplayController 显示取消按钮。当用户单击取消按钮时,我想调用一个方法。有没有办法做到这一点?

0 投票
1 回答
1117 浏览

iphone - UISearchDisplayController - 单击覆盖,调用方法?

当用户单击深色叠加层时,是否会调用委托方法,这基本上会从 UISearchDisplayController 中删除第一响应者状态?(我在文档中找不到。)

我想知道用户何时单击黑色覆盖,并且键盘被隐藏。

0 投票
1 回答
2390 浏览

iphone - 如何使用 UISearchDisplayController 预加载或初始化搜索?

我在 InterfaceBuilder 的 UITableViewController 中添加了一个 UISearchDisplayController。通过添加一个searchBar: searchBar textDidChange: searchText为表重新生成数据数组并调用reloadData.

但是我希望用户下次在搜索栏中触摸时显示以前的搜索,因为触摸(X)并清除它比再次输入要容易得多。但我不能让它去做。以下是我尝试过的代码:

下次我触摸搜索时,最后一个搜索文本适当地出现在搜索栏中,我很惊讶“光标”甚至位于末尾,但没有显示搜索结果,只是原始内容的变暗视图,如搜索字段为空。只要我输入一个字符,搜索结果就会更新。

我尝试将等价物[self.searchDisplayController.searchResultsTableView reloadData]放入每个:

但它没有任何区别......只是空白,直到我输入一些东西。

有谁知道如何获得预加载的搜索结果?

0 投票
1 回答
811 浏览

ios - UISearchDisplayController 中结果显示延迟 5s

UISearchDisplayController通过NSOperationQueue.

然而,结果表直到NSOperation调用后大约 5 秒才直观地更新[searchDisplayController.searchResultsTableView reloadData]

我的 CustomerSearchOperation 像这样更新 tableView: