gpt4 book ai didi

ios - 如何使用取消按钮功能部署 iOS 7 mail.app 搜索栏

转载 作者:行者123 更新时间:2023-12-01 19:04:41 26 4
gpt4 key购买 nike

我正在寻找创建一个 searchBar,虽然我在我的表格 View 上有点工作,但仍然需要一些努力才能让它 100% 完美。

引用 iOS 7 Mail.app,我该如何部署类似的东西?因此,在您单击搜索栏之前,搜索栏不会显示“取消”按钮,而取消按钮会取消搜索并将表格返回到原来的位置。

我有以下代码:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
_fetchedResultsController = nil;
NSError *error;

if (![[self fetchedResultsController] performFetch:&error])
{
NSLog(@"Error in search %@, %@", error, [error userInfo]);
}

else
{
[self.timelineTableView reloadData];
[self.timelineSearchBar resignFirstResponder];
[self.noResultsLabel setHidden:_fetchedResultsController.fetchedObjects.count > 0];
}
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
[self.timelineSearchBar resignFirstResponder];
self.timelineSearchBar.hidden = YES;
[self.timelineTableView reloadData];
[self viewDidLoad];
}

所以有了这个,我基本上希望 searchBar 在表格 View 中一直可见,并且不显示取消按钮,直到用户开始输入。如果他们执行搜索并产生结果或没有结果,我希望取消按钮:
  • 搜索栏的 ResignFirstResponder
  • 移除取消按钮
  • 将 TableView 恢复到搜索前的状态。

  • 谢谢

    最佳答案

    UISearchBarDelegate 中使用以下两种方法并做这样的事情:

    - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
    {
    [searchBar setShowsCancelButton:YES animated:YES];
    }

    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
    {
    [searchBar setShowsCancelButton:NO animated:YES];
    }

    如果您希望搜索看起来更有响应性,您可以将发布的代码移至 searchBar:textDidChange:委托(delegate)方法,然后只使用 searchBarSearchButtonClicked:做一个 [searchBar resignFirstResponder] :
    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
    {
    [searchBar resignFirstResponder];
    }

    - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
    {

    _fetchedResultsController = nil;
    NSError *error;

    if (![[self fetchedResultsController] performFetch:&error])
    {
    NSLog(@"Error in search %@, %@", error, [error userInfo]);
    }

    else
    {
    [self.timelineTableView reloadData];
    [self.noResultsLabel setHidden:_fetchedResultsController.fetchedObjects.count > 0];
    }
    }

    此外,您可以使用 searchBarCancelButtonClicked:还要从搜索栏中退出第一响应者,然后通过调用委托(delegate) searchBar:textDidChange: 更新您的表格 View :
    - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
    {
    [searchBar setText:@""];
    [self searchBar:searchBar textDidChange:@""];
    [searchBar resignFirstResponder];
    }

    关于ios - 如何使用取消按钮功能部署 iOS 7 mail.app 搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471310/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com