关于objective C:iOS 7 搜索栏 – 取消按钮不起作用 | 珊瑚贝

iOS 7 Search Bar – Cancel button doesn’t work


我在 iOS 6 应用程序中有一个 UISearchBar,它运行良好,但在 iOS 7 中,取消按钮和清除按钮不起作用,我无法返回。这是我的应用程序中的一个大问题,我需要解决它。

我的代码是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString

{
    // — iOS 7 Hack

    if (!SYSTEM_VERSION_LESS_THAN(@“7.0”)) {
        controller.searchResultsTableView.frame = CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height64);
        [controller.searchContentsController.view setNeedsLayout];
    }

    [self filterContentForSearchText:searchString scope:nil];
    return YES;

}

(void) searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
    // iOS7 Hack
    if (!SYSTEM_VERSION_LESS_THAN(@“7.0”)) {
        controller.searchResultsTableView.contentInset = UIEdgeInsetsMake(0.f, 0.f, 0.f, 0.f);
    }

}

感谢您的提前。

可能重复:UISearchBar 的取消和清除按钮在 iOS 7 中不起作用

编辑:

1
2
3
4
5
6
(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    self.searchDisplayController.searchBar.hidden = YES;
    self.tempImageView.hidden = NO;
    [searchBar resignFirstResponder];
}

解决方案:

通过这个功能我解决了这个问题:

1
2
3
4
5
6
7
(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
    controller.active = YES;

    [self.view addSubview:controller.searchBar];
    [self.view bringSubviewToFront:controller.searchBar];
}

希望对你有帮助!


通过这个功能我解决了这个问题:

1
2
3
4
5
6
7
(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
    controller.active = YES;

    [self.view addSubview:controller.searchBar];
    [self.view bringSubviewToFront:controller.searchBar];
}

希望对你有帮助!

  • 如果 controller 不活动,为什么还要调用 searchDisplayControllerDidBeginSearch:?
  • 当控制器开始搜索时调用它。
  • 按下取消按钮时调用什么方法?


IOS 7 默认搜索栏将是透明的取消按钮

1
2
3
4
5
6
7
8
9
(void)searchBarCancelButtonClicked:(UISearchBar *)aSearchBar
{
    [aSearchBar resignFirstResponder];
    isSearching = NO;
    aSearchBar.text = @“”;

    [diaryTableView reloadData];

}


来源:https://www.codenong.com/21233749/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9797.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?