Ios UISearchBar在重新加载UICollectionView的数据后丢失第一响应程序

Ios UISearchBar在重新加载UICollectionView的数据后丢失第一响应程序,ios,uisearchbar,uicollectionview,Ios,Uisearchbar,Uicollectionview,我在iPad应用程序中有一个集合视图,希望添加搜索功能。集合视图的数据源由nsfetchedresultcontroller提供 我将UISearchBar放置在窗口下部的UIToolBar中。当用户点击搜索栏时,我将整个工具栏的移动和键盘的外观一起设置动画,以保持工具栏(以及搜索栏)可见。当用户在搜索栏中键入时,我实现了以下方法: -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {

我在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];
}
我的问题是,当谓词真正过滤数据集时,位于键盘上方的工具栏将返回其原始位置。例如,如果用户键入的内容不改变数据集,工具栏将保持不变


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

为什么不将搜索栏放在NavigationBar中?我最终做到了这一点(将搜索栏放在NavigationBar中)。但从我最初的UI设计来看,这并不是我想要的。我会继续努力找出解决这个问题的方法。嗨,路易斯找到了解决这个问题的方法,我也有同样的问题。如果是,请告诉我们。面对同样的问题。