我在UIToolbar中嵌入了一个UISearchBar作为UIBarButtonItem。基本功能可以正常使用,但是取消按钮和范围条无法显示。我尝试在接口生成器中启用它们,也尝试手动调用[searchBar setShowsCancelButton:YES]
,但两种方法都不起作用。有什么想法吗?
这是在iPad上进行的。我在iOS 3中尝试过,但在4.2中也无法正常工作。
我在UIToolbar中嵌入了一个UISearchBar作为UIBarButtonItem。基本功能可以正常使用,但是取消按钮和范围条无法显示。我尝试在接口生成器中启用它们,也尝试手动调用[searchBar setShowsCancelButton:YES]
,但两种方法都不起作用。有什么想法吗?
这是在iPad上进行的。我在iOS 3中尝试过,但在4.2中也无法正常工作。
你需要使用另一个视图来包装UISearchBar。
UISearchBar *searchBar = [UISearchBar new];
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame];
[searchBarContainer addSubview:searchBar];
UIBarButtonItem *searchBarItem =
[[UIBarButtonItem alloc] initWithCustomView:searchBarContainer];
你遇到了UISearchBar的限制。一种解决方法是将UISearchBar放置在UIToolbar上方,而不是真正地放置在工具栏中。这样做在视觉上是可行的,因为搜索栏的外观与工具栏非常相似 - 它们的渐变是相同的。
在搜索栏中真的有必要使用取消按钮吗?只需使用textDidChange方法来查看字符串是否已被清除,并使用它来执行与取消相同的操作即可。