0

如何让取消按钮仅在用户开始在 UISearchBar 中输入文本时出现?

我试过这个

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
self.searchBar.showsCancelButton = YES;
}

但这不起作用,我认为将其设置为“showsCancelButton”没有任何问题,因为即使我说

NSLog(@"Typing");

它不会打印到屏幕上。Xcode 4.3 中是否有另一种方法可以做到这一点?还有一种方法可以知道是否已按下取消按钮?

4

3 回答 3

1

您的方法没有返回 BOOLean 值“YES”。这应该有效:

// show search bar's cancel button when editing
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {

    searchBar.showsCancelButton = YES;

    return YES;
}
// hide search bar's cancel button when not editing
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {

    searchBar.showsCancelButton = NO;

    return YES;
}
于 2012-09-26T16:01:24.923 回答
1

您确定该班级是 的代表searchBar吗?尝试self.searchBar.delegate=self;viewDidLoad方法中设置。

于 2012-03-04T06:39:12.193 回答
0

尝试这个:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
  aSearchBar.showsCancelButton = YES;
}
于 2012-05-03T07:34:08.757 回答