在文本字段中显示 UISearchBar "X" 与相邻的取消按钮

Posted

技术标签:

【中文标题】在文本字段中显示 UISearchBar "X" 与相邻的取消按钮【英文标题】:Showing UISearchBar "X" within text field vs. adjacent Cancel button 【发布时间】:2009-09-02 20:30:49 【问题描述】:

我知道我可以将 showsCancelButton 设置为 NO 以获得 UISearchBar ...直到您点击搜索栏文本字段,然后取消按钮仍然出现! (至少它对我有用。)

有没有办法在 UISearchBar 文本字段中以圆圈形式显示“X”,而不是在旁边显示单独的取消按钮?请注意,此按钮仅在搜索模式处于活动状态时为我显示,这与 showsCancelButton 的设置无关。

【问题讨论】:

【参考方案1】:

试试这个

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

    // only show the status bar's cancel button while in edit mode
    mySearchBar.showsCancelButton = NO;


- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar

    mySearchBar.showsCancelButton = NO;

使用此取消按钮时不会显示。

【讨论】:

根本不适合我。当我添加它时,当我进入编辑模式时,取消按钮仍然会显示,即使我跟踪进行设置的行。 从哪里添加 UIsearchbar? 是的。我去编辑搜索栏中的文本的那一刻,取消按钮飞到了右边。等一下。您是单独使用 UISearchBar,还是作为新的 3.0 UISearchDisplayController 的一部分? (我使用的是后者。) 我还没有使用新的 UISearchDisplayController。它仅在 3.0 中可用。我使用了 UISearchBar,因为我的项目是在 2.0 操作系统中。您可以尝试使用 UISearchBAr 而不是 UISearchDisplayController。【参考方案2】:
for (UIView *searchBarSubview in [searchBar subviews]) 

    if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) 

         [(UITextField *)searchBarSubview setClearsOnBeginEditing:YES];
    

启用cancelButton试试searchBar.showsCancelButton = YES; 试试上面的代码行。

【讨论】:

谢谢!我倾向于对以这种方式浏览子视图感到不安(除非它已记录在案),但您肯定已经在这里尽职尽责。要确认,取消按钮在执行时是保留还是消失? 执行此代码后,它将在文本字段中显示 x 符号,如果您想启用 cancelbutton set showsCancelButton=YES 查看我更新的答案【参考方案3】:

如果你使用界面生成器,它很容易显示。默认情况下它就在那里。我在我的应用程序中使用了搜索栏,并且搜索栏文本字段有一个“X”来清除文本字段

【讨论】:

澄清我的问题:我在问是否有办法在圆圈中显示“X”而不是(即,而不是)有单独的取消按钮出现在它旁边。是的,一旦您开始输入文本,圆圈中的“X”肯定会出现,但取消按钮将保留,无论 showCancelButton 的设置如何。【参考方案4】:

可能“X”只是为了清除搜索字段而不是取消搜索,因此一旦搜索开始,取消按钮必须保留,无论 showsCancelButton .

【讨论】:

以上是关于在文本字段中显示 UISearchBar "X" 与相邻的取消按钮的主要内容,如果未能解决你的问题,请参考以下文章

字段为空时为 UISearchBar 启用“搜索”按钮? (IOS 7)

如何更改UISearchBar中文本字段的位置

UISearchBar 在解雇后正在调整大小

使 UISearchBar 在两个不同的字段上进行搜索

UISearchBar 搜索图标在 iOS7 中没有左对齐

编辑某些字段后键盘不显示