博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITextField 自定义搜索栏
阅读量:4667 次
发布时间:2019-06-09

本文共 1809 字,大约阅读时间需要 6 分钟。

1,创建UITextField,并且设置代理

searchField = [[UITextField alloc]initWithFrame:CGRectMake(0,5,320,36)] ;    searchField.textColor= [UIColor colorWithRed:0.0/255.0 green:103.0/255.0 blue:155.0/255.0 alpha:1.0];    searchField.font= [UIFont systemFontOfSize:16] ;    searchField.backgroundColor= [UIColor blueColor];    //搜索栏内容的位置    searchField.contentVerticalAlignment=UIControlContentVerticalAlignmentBottom;    [searchField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; // textField的文本发生变化时相应事件//    设置ReturnKeyType为UIRetuirKeySearch;    [searchField setReturnKeyType:UIReturnKeySearch];//    设置UITextField的delegate为self    searchField.delegate=self;    mytableView.tableHeaderView = searchField;

2,搜索就是要做到实时监控输入内容的变化

- (void) textFieldDidChange:(UITextField*) TextField{    NSLog(@"textFieldDidChange textFieldDidChange %@", TextField.text);            NSString *conditionStr = TextField.text;    NSLog(@"+++++%@", conditionStr);    // 2. 创建谓词,准备进行判断的工具    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.nameString CONTAINS [CD] %@ ", conditionStr];    seachArray = [NSMutableArray arrayWithArray:[allNameArray filteredArrayUsingPredicate:predicate]];    NSLog(@" searchMuArray  = %@", seachArray);        [mytableView reloadData];        if(![TextField.text isEqualToString:@""]) {//        delButton.hidden=NO;  // 仿制searchbar后面的小叉叉    } else{//        delButton.hidden=YES;    }}

上面的代码只是一个参考 具体实现就是这么做的.

3,添加取消按钮

取消不仅仅只是删除UITextField的值,这样,我们还是起不到取消搜索的功能.那么我们应该怎么做呢

添加一个用于删除的button 具体创建就不写了

- (void)fieldCancleButton {     searchField.text = @"";    [self textFieldDidChange:searchField];}

这是button的点击方法

同时,我们也要在viewWillAppear:里面调用button的点击方法,这样我们就能做到我们对搜索到的元素操作后,再次进入该页面的时候.保证显示的内容是全部的内容

 

转载于:https://www.cnblogs.com/nsjelly/p/4600585.html

你可能感兴趣的文章
Linq to sql并发与事务
查看>>
2017-06-27
查看>>
Convert DataTable to Html Table
查看>>
JavaEE复习三
查看>>
全局ajax事件
查看>>
javascript二维数组
查看>>
JavaScript 字符串属性和方法
查看>>
opencv新手注意
查看>>
Source InSight context 窗口丢失的解决办法
查看>>
cut point and bridge总结
查看>>
(5)Oracle基础--约束
查看>>
vmware vcenter orchestrator configuration提示“用户名密码错误或登录失败超过次数被锁定”...
查看>>
【Nginx】磁盘文件写入飞地发
查看>>
默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。
查看>>
su root 后还是不能使用useradd ,useradd 等命令
查看>>
URL.createObjectURL图片预览
查看>>
js 中exec、test、match、search、replace、split用法
查看>>
Android开发笔记(一)手势识别
查看>>
mybatis 复习笔记03
查看>>
zoj 3703(背包)
查看>>