Son*_*ach 4 objective-c ios uisearchcontroller
我在 UITableView 的标题中使用 UISearchController 的 UISearchBar。我的搜索工作正常,因为当我在搜索栏的字段中输入一些文本时,所有相关方法都会被调用,并且表格视图会按预期显示正确的搜索结果。
当我想利用其中一个结果对其进行处理时,问题就出现了。一旦我点击表视图单元格之一,搜索栏中的字段就会变为空。由于搜索文本现在是空的,搜索结果被更新,表格视图重新加载零结果。所以点击表格单元格什么也不做,因为表格单元格不再存在。
我可以通过更新我的updateSearchResultsForSearchController:
方法在搜索字符串为空时不更新搜索结果来解决大部分问题。这工作正常。但无论如何,我仍然希望搜索文本保留在搜索字段中,这是我问题的关键......
为什么我的搜索文本从搜索字段中消失了,当我点击其他地方时,如何防止搜索字段变空?
这是我设置搜索栏和搜索控制器的方法:
- (void)viewDidLoad {
[super viewDidLoad];
searcher = [[UISearchController alloc] initWithSearchResultsController:nil];
searcher.searchResultsUpdater = self;
searcher.delegate = self;
searcher.definesPresentationContext = YES;
resultsTable.tableHeaderView = searcher.searchBar;
Run Code Online (Sandbox Code Playgroud)
编辑:我注意到当搜索栏有焦点时表格视图单元格变暗。所以我认为搜索控制器正在捕获所有触摸,并且可能将它们作为“取消”操作来处理。如果是这样,我该如何阻止它以这种方式取消?
Son*_*ach 14
弄清楚了。我需要添加:
searcher.obscuresBackgroundDuringPresentation = NO;
Run Code Online (Sandbox Code Playgroud)