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

5

我在UIToolbar中嵌入了一个UISearchBar作为UIBarButtonItem。基本功能可以正常使用,但是取消按钮和范围条无法显示。我尝试在接口生成器中启用它们,也尝试手动调用[searchBar setShowsCancelButton:YES],但两种方法都不起作用。有什么想法吗?

这是在iPad上进行的。我在iOS 3中尝试过,但在4.2中也无法正常工作。

3个回答

11

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

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

3

你遇到了UISearchBar的限制。一种解决方法是将UISearchBar放置在UIToolbar上方,而不是真正地放置在工具栏中。这样做在视觉上是可行的,因为搜索栏的外观与工具栏非常相似 - 它们的渐变是相同的。


0

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


1
所以你的意思是每当用户删除最后一个字符时,键盘应该消失并结束编辑?这似乎是应用程序自作聪明的行为。 - SG1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接