我在UIToolbar中嵌套了一个UISearchBar作为UIBarButtonItem。基本功能有效,但取消按钮和范围栏拒绝显示。我已尝试在界面构建器中启用它们,我也尝试手动调用[searchBar setShowsCancelButton:YES]
,但这两种方法都不起作用。有什么想法吗?
这是在iPad上。我在iOS 3中尝试过,它在4.2中也不起作用。
答案 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方法查看字符串是否已被清除,并使用它来执行取消所做的相同操作。