【问题标题】:UISearchBar within a UIToolbar won't show cancel buttonUIToolbar 中的 UISearchBar 不会显示取消按钮
【发布时间】:2010-12-07 18:01:12
【问题描述】:

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

这是在 iPad 上。我在 iOS 3 中尝试过,在 4.2 中也无法使用。

【问题讨论】:

    标签: ipad ios uisearchbar uitoolbar


    【解决方案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 方法查看字符串是否已被清除并使用它来执行与取消相同的操作。

        【讨论】:

        • 所以你是说每当用户删除最后一个字符时,键盘应该关闭并结束编辑?这似乎是应用程序方面的冒昧行为。
        猜你喜欢
        • 1970-01-01
        • 2013-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多