问题标签 [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.
iphone - 带有 UISearchBar 和 UITableView 的 UISearchDisplayController - 如何避免“实时结果”?
我已经使用 UISearchDisplayController 和 UITableView 实现了一个 SearchBar 来显示搜索结果。我正在使用 libxml2 和 xpath 来解析 HTML 网站并搜索源代码中所需的内容。由于我是 ObjC 的新手,所以我使用 Apple 提供的示例项目 TableSearch 作为搜索和显示部分的开始。一切正常,我可以解析网站中的特定内容,并在它们出现在网站上时正确组合它们,并将它们显示在不同的 TableView 行的视图中。我想使用用户输入来搜索特定网站。我只有以下问题:
如果您查看项目TableSearch(类 MainViewController.m),您会注意到它更新了“filteredListContent”并重新加载 TableView,并在用户键入时自动显示它:
您可以想象,当我使用我的实现进行解析和搜索时它需要一些内存,并且当用户键入以显示“实时结果”时重复调用它时尤其重要。当我只使用我的块的第一行进行解析和搜索(使用 URL 初始化 NSData 对象)时,SearchBar 开始滞后并在输入每个字符后延迟几秒钟。当我使用整个块时,应用程序崩溃。我的问题如下:
如何在执行搜索之前等待键盘上的“搜索”或“返回”按钮被点击,或者我在哪里以及如何检查按钮是否被点击?对不起这个可能微不足道的问题。
iphone - 表视图中的 SearchBar 与 searchDisplayController 以编程方式无编辑
我正在尝试在表格的标题视图内创建一个带有搜索栏的表格视图。我想使用 searchDisplayController 来管理所有内容。我以编程方式创建了所有内容(我对 IB 感到不舒服)试图设置所有正确的属性,但似乎我遗漏了一些东西,因为当表格出现时我无法编辑文本搜索栏并查看任何动画。这是代码的一部分:
我知道当您单独使用搜索栏时,您必须处理它的委托协议,但我猜测 searchDisplayController 会为您管理,如 Apple 示例代码中所示。(建立与 IB)。
有什么建议吗?谢谢你,安德里亚
iphone - 搜索方法迭代完成后重新加载/显示 UISearchDisplayController 的 searchResultsTableView
我修改了 Apple 的示例 iOS 项目TableSearch的代码,以便通过解析其内容来使用它来搜索 Web 服务。在使用 SearchDisplayController 的 SearchBar 执行搜索时,除了一个丑陋的细节之外,我实现的所有东西都可以正常工作。我更改了 SearchDisplayController 的行为,使其在点击“搜索”按钮时首先调用我的搜索功能。
问题在于,当搜索迭代(在 NSOperationQueue 的后台执行)完成时,(searchDisplayController 的)“searchResultsTableView”不会自动显示或未分配结果内容。如果您随后更改了 SearchBar 的文本或在您触摸搜索字段时出现的视图中点击“取消”按钮(请参阅 TableSearch),则正确的 TableView 将显示在搜索结果中。我只是想让这个步骤在搜索操作完成后立即执行,所以在你交互之前。在此阶段,当前显示“无结果”标签。方法“filterContentForSearchText”和“shouldReloadTableForSearchString”与原始 TableSearch 项目没有变化。
我查看了 SearchDisplayController 的不同类引用及其属性,但我还没有找到任何最终解决方案。
我在 NSOperation 完成后肯定会迭代的部分中尝试了以下内容,但似乎并没有解决问题。
和
这些操作都具有我想要显示的正确视图,但是在您更改状态以使视图再次隐藏之前,滚动被禁用。不过,可以选择 TableView 单元格。我基本上只想启用滚动功能...
提前感谢您的努力!
iphone - 当 UISearchDisplayController 处于非活动状态时保持搜索词可见
我的应用程序使用UISearchDisplayController
. 当用户输入搜索词时,我希望它在搜索栏中保持可见。如果用户选择匹配的结果之一,则此方法有效,但如果用户单击“搜索”按钮则无效。
这有效:
但是如果我在-searchBarSearchButtonClicked:
文本中做同样的事情不会留在搜索栏中。关于在这种情况下如何实现这一点的任何想法?
相关,如果我设置搜索栏的文本(但保持UISearchDisplayController
非活动状态),则会触发 searchResultsTableView 的显示。我只想在用户点击搜索栏时显示这一点。
编辑:找到了一种解决方法来设置搜索栏的文本,而不在任何时候显示 searchResultsTableView:
更好的建议仍然欢迎!
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?
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 indexPathForSelectedRow
为null。
哦,我正在使用NSFetchedResultsController。就像我说的 - 获取的结果是正确的,但似乎它们没有正确地馈送到 tableview (如果它没有合成..)
谢谢!
iphone - UISearchDisplayController - 单击取消按钮时的方法
我有一个 UISearchDisplayController 显示取消按钮。当用户单击取消按钮时,我想调用一个方法。有没有办法做到这一点?
iphone - UISearchDisplayController - 单击覆盖,调用方法?
当用户单击深色叠加层时,是否会调用委托方法,这基本上会从 UISearchDisplayController 中删除第一响应者状态?(我在文档中找不到。)
我想知道用户何时单击黑色覆盖,并且键盘被隐藏。
iphone - 如何使用 UISearchDisplayController 预加载或初始化搜索?
我在 InterfaceBuilder 的 UITableViewController 中添加了一个 UISearchDisplayController。通过添加一个searchBar: searchBar textDidChange: searchText
为表重新生成数据数组并调用reloadData
.
但是我希望用户下次在搜索栏中触摸时显示以前的搜索,因为触摸(X)并清除它比再次输入要容易得多。但我不能让它去做。以下是我尝试过的代码:
下次我触摸搜索时,最后一个搜索文本适当地出现在搜索栏中,我很惊讶“光标”甚至位于末尾,但没有显示搜索结果,只是原始内容的变暗视图,如搜索字段为空。只要我输入一个字符,搜索结果就会更新。
我尝试将等价物[self.searchDisplayController.searchResultsTableView reloadData]
放入每个:
但它没有任何区别......只是空白,直到我输入一些东西。
有谁知道如何获得预加载的搜索结果?
ios - UISearchDisplayController 中结果显示延迟 5s
我UISearchDisplayController
通过NSOperationQueue
.
然而,结果表直到NSOperation
调用后大约 5 秒才直观地更新[searchDisplayController.searchResultsTableView reloadData]
。
我的 CustomerSearchOperation 像这样更新 tableView: