UISearchBar在重新加载UICollectionView的数据后丢失了第一个响应者

时间:2013-03-13 16:37:59

标签: ios uisearchbar uicollectionview

我在iPad应用中有一个收藏视图,想要添加搜索功能。集合视图的数据源由nsfetchedresultcontroller提供。

我将UISearchBar放在位于窗口下部的UIToolBar中。当用户点击搜索栏时,我将整个工具栏的移动与键盘的外观一起动画,以使工具栏(以及搜索栏)可见。当用户在搜索栏中输入内容时,我实现了以下方法:

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    if (searchText && searchText.length){
        NSPredicate *searchPredicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];
        [NSFetchedResultsController deleteCacheWithName:nil];
        [self.fetchedResultsController.fetchRequest setPredicate:searchPredicate];
    }else{
        [NSFetchedResultsController deleteCacheWithName:nil];
        [self.fetchedResultsController.fetchRequest setPredicate:nil];
    }
    [self performFetch];
}

我的问题是,当谓词真正过滤数据集时,放在键盘上方的工具栏会返回其原始位置。例如,如果用户键入的内容不会更改数据集,则工具栏将保留在原位。

如何在用户输入时保持工具栏的位置,最终更改集合视图?

0 个答案:

没有答案