UISearchBar使用
/*取消按钮*/
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
[self doSearch:searchBar];
}
/*键盘搜索按钮*/
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
[self doSearch:searchBar];
}
/*搜索*/
- (void)doSearch:(UISearchBar *)searchBar{
...
}
UISearchBar上按钮的默认文字为Cancel,如果想改为其他文字请调用一下代码for(id cc in [searchtext subviews]){
if([cc isKindOfClass:[UIButton class]]){
UIButton *btn = (UIButton *)cc;
[btn setTitle:@"取消" forState:UIControlStateNormal];
}
}
//修改搜索框背景
seachBar.backgroundColor=[UIColor clearColor];
//去掉搜索框背景
//1.
[[searchbar.subviews objectAtIndex:0]removeFromSuperview];
//2.
for (UIView *subview in seachBar.subviews)
{
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
[subview removeFromSuperview];
break;
}
}
//3自定义背景
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];
[mySearchBar insertSubview:imageView atIndex:1];
[imageView release];
//4输入搜索文字时隐藏搜索按钮,清空时显示
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
searchBar.showsScopeBar = YES;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:YES animated:YES];
return YES;
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
searchBar.showsScopeBar = NO;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:NO animated:YES];
return YES;
}
//改变搜索按钮文字
//改变UISearchBar取消按钮字体
for(id cc in [searchBar subviews])
{
if([cc isKindOfClass:[UIButton class]])
{
UIButton *btn = (UIButton *)cc;
[btn setTitle:@"搜索" forState:UIControlStateNormal];
}
}
下图有点小,可以下载至本地放大查看。
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图
终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing,)
当你希望选中UISearchBar的时候,键盘自动调用加载到界面,你需要将下面函数的返回值设置为YES;
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
NSLog(@"shouldBeginEditing");
returnYES;
}
当你在seachBar中输入字母Dditring的时候,如图:
终端显示
当你点击键盘右下角的Done的时候,调用searchButtonClicked
UISearchBar的相关属性:
当在Viewdidload里面加入下面两行的时候,
界面searchBar显示
当在Viewdidload里面加入下面一行的时候
界面searchBar显示: