4

我在 iPad 应用程序中有一个集合视图,并想添加搜索功能。集合视图的数据源由 nsfetchedresult 控制器提供。

我将 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];
}

我的问题是,当谓词真正过滤数据集时,放置在键盘上方的工具栏又回到了原来的位置。例如,如果用户键入的内容没有更改数据集,则工具栏将保留在原处。

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

4

0 回答 0