UISearchBar里面的取消按钮

时间:2014-01-27 11:53:23

标签: ios uiviewcontroller uisearchbar

我正在开发一个关于XCode 5的应用程序,但我找不到答案。

my UISearchBar

哪种方法可以控制UISearchBar上的“X”按钮?我试过

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar

但它不起作用

有任何线索吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

这是您正在寻找的方法

- (BOOL)textFieldShouldClear:(UITextField *)textField; 

但这是UITextFields委托方法,你需要设置UISearchBar文本字段的委托。见这个

在标题(.h)文件中

符合代表。 <UISearchBarDelegate, UITextFieldDelegate>

- (void)viewDidLoad 
{
          //find the UITextField view within searchBar (outlet to UISearchBar)
          //and assign self as delegate
    for (UIView *view in searchBar.subviews)
    {
            if ([view isKindOfClass: [UITextField class]]) 
            {
                    UITextField *tf = (UITextField *)view;
                    tf.delegate = self;
                    break;
                }
          }
 }

 - (void)searchBarCancelButtonClicked:(UISearchBar *) aSearchBar 
{
     [aSearchBar resignFirstResponder];
}

- (BOOL)textFieldShouldClear:(UITextField *)textField 
{
     [self performSelector:@selector(searchBarCancelButtonClicked:) withObject:self.searchBar afterDelay: 0.1];
    return YES;
}

答案 1 :(得分:0)

试试这个,

子类UISearchBar

@interface CustomSearchBar : UISearchBar

并添加UITextField

的委托方法
- (BOOL)textFieldShouldClear:(UITextField *)textField

在那门课上。希望这会有所帮助。