在文本字段中显示 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" 与相邻的取消按钮的主要内容,如果未能解决你的问题,请参考以下文章