UIToolbar 中的 UISearchBar 不会显示取消按钮
Posted
技术标签:
【中文标题】UIToolbar 中的 UISearchBar 不会显示取消按钮【英文标题】:UISearchBar within a UIToolbar won't show cancel button 【发布时间】:2010-12-07 18:01:12 【问题描述】:我有一个 UISearchBar 作为 UIToolbar 内的 UIBarButtonItem 嵌套。基本功能有效,但取消按钮和范围栏拒绝显示。我尝试在界面生成器中启用它们,也尝试手动调用[searchBar setShowsCancelButton:YES]
,但两种方法都不起作用。有什么想法吗?
这是在 iPad 上。我在 ios 3 中尝试过,在 4.2 中也无法使用。
【问题讨论】:
【参考方案1】:您需要用另一个视图包装 UISearchBar。
UISearchBar *searchBar = [UISearchBar new];
UIView *searchBarContainer = [[UIView alloc] initWithFrame:searchBar.frame];
[searchBarContainer addSubview:searchBar];
UIBarButtonItem *searchBarItem =
[[UIBarButtonItem alloc] initWithCustomView:searchBarContainer];
【讨论】:
【参考方案2】:您只是遇到了 UISearchBar 工作方式的限制。一种解决方法是将 UISearchBar 放在 UIToolbar 之上,而不是让它真正存在于工具栏中。这在视觉上很有效,因为搜索栏的绘制就像工具栏一样 - 它们的渐变是相同的。
【讨论】:
【参考方案3】:真的有必要在搜索栏中使用取消按钮吗?只需使用 textDidChange 方法查看字符串是否已被清除并使用它来执行与取消相同的操作。
【讨论】:
所以你是说每当用户删除最后一个字符时,键盘应该关闭并结束编辑?这似乎是应用程序方面的冒昧行为。以上是关于UIToolbar 中的 UISearchBar 不会显示取消按钮的主要内容,如果未能解决你的问题,请参考以下文章
当 UISearchBar 变为活动状态时调整 UIToolbar 的大小
UIToolbar 内部的 UIView 内部的 UISearchBar 背景颜色问题
使 UIToolBar 和 UISearchBar 具有哑光黑色背景
Black Opaque UIToolbar 和 UISearchBar 看起来差别太大了