UITextField中文搜索
导入头文件
#import "ChineseInclude.h"
#import "PinYinForObjc.h"
NSMutableArray *searchResults;//可变数组,添加搜索到的数据
设置数据源
- (NSArray *)dataArray {
if (!_dataArray) {
_dataArray = @[@"百度",@"六六",@"谷歌",@"苹果",@"and",@"table",@"view",@"and",@"and",@"苹果IOS",@"谷歌android",@"微软",@"微软WP",@"table",@"table",@"table",@"六六",@"六六",@"六六",@"table",@"table",@"table"];
}
return _dataArray;
}
监听textField
[_textField addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged];
当输入的时候进行搜索
- (void)textFieldEditChanged:(UITextField *)mySearchBar
{
searchResults = [[NSMutableArray alloc]init];
if (mySearchBar.text.length>&&![ChineseInclude isIncludeChineseInString:mySearchBar.text]) {
for (int i=; i<self.dataArray.count; i++) {
if ([ChineseInclude isIncludeChineseInString:self.dataArray[i]]) {
NSString *tempPinYinStr = [PinYinForObjc chineseConvertToPinYin:self.dataArray[i]];
NSRange titleResult=[tempPinYinStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>) {
[searchResults addObject:self.dataArray[i]];
} // NSString *tempPinYinHeadStr = [PinYinForObjc chineseConvertToPinYinHead:self.dataArray[i]];
// NSRange titleHeadResult=[tempPinYinHeadStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
// if (titleHeadResult.length>0) {
// [searchResults addObject:self.dataArray[i]];
// }
}
else {
NSRange titleResult=[self.dataArray[i] rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>) {
[searchResults addObject:self.dataArray[i]];
}
}
}
} else if (mySearchBar.text.length>&&[ChineseInclude isIncludeChineseInString:mySearchBar.text]) {
for (NSString *tempStr in self.dataArray) {
NSRange titleResult=[tempStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch];
if (titleResult.length>) {
[searchResults addObject:tempStr];
}
}
}
NSLog(@"搜索结果:%@",searchResults);
//在这里刷新
// [_tableView reloadData];
}
效果图:
Demo下载链接:http://pan.baidu.com/s/1bncyjZD
UITextField中文搜索的更多相关文章
- Raneto部署知识库平台&支持中文搜索
目录 环境 更新软件包 部署 Raneto 知识库平台 安装 Node 环境 安装 node 管理工具 查看 node 列表 安装需要的Node版本 使用 淘宝NPM源 git 使用代理设置,大陆地区 ...
- Raneto中文搜索支持
背景 因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用. 官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我 ...
- helm-mode打开文件支持中文搜索
helm-mode打开文件支持中文搜索 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #83949 ...
- 如何解决Firefox浏览器地址栏中文搜索速度很慢
一.插件安装 之前使用Chrome浏览器,习惯在地址栏中直接进行中文搜索.转到Firefox之后,突然发现在地址栏进行中文搜索,访问速度会很慢. 可以使用插件解决这个问题:Omnibar 插件地址:h ...
- ArcGIS API中FindTask中文搜索无效,服务器编码问题URIEncoding="utf-8"
问题来源:字符编码问题导致ArcMap中字符乱码或显示不正常,因而在F:\Program Files\ArcGIS\Server\framework\runtime\tomcat\conf中serve ...
- 只 一行显示可左右滚动的文本(UITextField中文限制)
// // ViewController.m // 一行显示可滚动的文本 // // Created by apple on 15-5-8. // Copyright (c) 2015年 apple. ...
- sphinx-doc的中文搜索
第一,你的系统需要安装jieba类库, pip install jieba 第二,接下来修改sphinx的conf.py文件,为项目设置为中文的搜索配置. # Language to be used ...
- UITextField中文输入法输入时对字符长度的限制 输入时对字符类型的限制
检索一个字符串的长度的话:直接用 length,去进行判断就行了, 如果要检索字符串是否是自己要限制的类型的话,可以用正则表达式: 举个例子: 匹配9-15个由字母/数字组成的字符串的正则表达式: ...
- Elasticsearch中文搜索环境搭建
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅 安装Java JDK,由于Lucene是用J ...
随机推荐
- C基础 北京大公司面试简单总结
作者有话说 这是关于程序员面试的一篇文章, 希望对你有帮助. 干了快3年了. 可以简单参考, 对比总结.虽然本人很水. 很喜欢当前做的手游项目.做的很认真.后端每个人技术都很好.但是结果都不如意.在死 ...
- Android--PullToRefreshListView 的简单使用
原文: http://blog.csdn.net/lmj623565791/article/details/38238749; pull-to-refresh对ListView进行了封装,叫做:Pu ...
- poj 1985 Cow Marathon
题目连接 http://poj.org/problem?id=1985 Cow Marathon Description After hearing about the epidemic of obe ...
- JavaScript高级程序设计之作用域链
JavaScript只有函数作用域:每个函数都有个作用域链直达window对象. 变量的查找由内而外层层查找,找到即止. 同时不仅可以查找使用,甚至可以改变外部变量. var color = &quo ...
- chmod命令用法
指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix ...
- homework-04 抓瞎
程序截图 这是基本版本截图....空都没填上 四个角的话 可以留下四个单词 最后添上就行 程序思路 在一个大平面上先一个中心,然后从中心向四周填词 每次填词时,寻找一个使得矩阵最小的 代目如下 #in ...
- python并行迭代
并行迭代:同时并行遍历两个列表 for line1,line2 in zip(line1_list, line2_list): ... 无聊,贴一段刚才的代码: import sys import s ...
- java 静态变量生命周期(类生命周期)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- Java Day 09
子父类的构造函数 在子类的构造函数中,第一行有一个默认的隐式语句:super() 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数. 为什么子类实例化的时候要访问父类中的构造 ...
- spring字符编码设置
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springf ...