UIToolbar中的UISearchBar不会显示取消按钮

时间:2010-12-07 18:01:12

标签: ipad ios uisearchbar uitoolbar

我在UIToolbar中嵌套了一个UISearchBar作为UIBarButtonItem。基本功能有效,但取消按钮和范围栏拒绝显示。我已尝试在界面构建器中启用它们,我也尝试手动调用[searchBar setShowsCancelButton:YES],但这两种方法都不起作用。有什么想法吗?

这是在iPad上。我在iOS 3中尝试过,它在4.2中也不起作用。

3 个答案:

答案 0 :(得分:11)

您需要使用另一个视图包装UISearchBar。

UISearchBar *searchBar = [UISearchBar new];
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame];
[searchBarContainer addSubview:searchBar];
UIBarButtonItem *searchBarItem =
    [[UIBarButtonItem alloc] initWithCustomView:searchBarContainer];

答案 1 :(得分:3)

您只是对UISearchBar的工作方式有所限制。一种解决方法是将UISearchBar分层放在UIToolbar上,而不是让它真正存在于工具栏中。这在视觉上是有效的,因为搜索栏就像工具栏一样被绘制 - 它们的渐变是相同的。

答案 2 :(得分:0)

是否真的有必要在搜索栏中使用“取消”按钮?只需使用textDidChange方法查看字符串是否已被清除,并使用它来执行取消所做的相同操作。