- 浏览: 458551 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
UISearchBar & UISearchBarDelegate
Demo中的代码 - - ,了解下思路
http://blog.sina.com.cn/s/blog_67c938a20100v9gq.html
http://blog.csdn.net/cocoa_geforce/article/details/6801460
#pragma mark Search Bar Delegate Methods // 开始 - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { isSearching = YES; [table reloadData]; } // 点击搜索 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { NSString *searchTerm = [searchBar text]; [self handleSearchForTerm:searchTerm]; } // 即时搜索 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchTerm { if ([searchTerm length] == 0) { [self resetSearch]; [table reloadData]; return; } [self handleSearchForTerm:searchTerm]; } // 取消搜索 - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { isSearching = NO; search.text = @""; [self resetSearch]; [table reloadData]; [searchBar resignFirstResponder]; }
// 提供实时搜索 - (void)handleSearchForTerm:(NSString *)searchTerm { [self resetSearch]; // 总体思路是将不符合条件的加到集合A,然后集中移除集合A // 迭代时移除,可能会出错,用过C++的Array就知道 NSMutableArray *sectionsToRemove = [[NSMutableArray alloc] init]; for (NSString *key in self.keys) { NSMutableArray *array = [names valueForKey:key]; NSMutableArray *toRemove = [[NSMutableArray alloc] init]; for (NSString *name in array) { if ([name rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location == NSNotFound) [toRemove addObject:name]; } if ([array count] == [toRemove count]) { [sectionsToRemove addObject:key]; } [array removeObjectsInArray:toRemove]; [toRemove release]; } [self.keys removeObjectsInArray:sectionsToRemove]; [sectionsToRemove release]; [table reloadData]; }
// 刷新Keys索引 和 可变副本 - (void)resetSearch { NSMutableDictionary *allNamesCopy = [self.allNames mutableDeepCopy]; self.names = allNamesCopy; [allNamesCopy release]; NSMutableArray *keyArray = [[NSMutableArray alloc] init]; [keyArray addObject:UITableViewIndexSearch];//UITableViewIndexSearch=@"{search}" 放大镜,细节啊 [keyArray addObjectsFromArray:[[self.allNames allKeys] sortedArrayUsingSelector:@selector(compare:)]];// 还进行了排序 self.keys = keyArray; [keyArray release]; }
// NSDictionary 深拷贝 @implementation NSDictionary(DeepMutableCopy) -(NSMutableDictionary *)mutableDeepCopy { NSMutableDictionary *ret = [[NSMutableDictionary alloc] initWithCapacity:[self count]]; NSArray *keys = [self allKeys]; for (id key in keys) { id oneValue = [self valueForKey:key]; id oneCopy = nil; if ([oneValue respondsToSelector:@selector(mutableDeepCopy)]) oneCopy = [oneValue mutableDeepCopy]; else if ([oneValue respondsToSelector:@selector(mutableCopy)]) oneCopy = [oneValue mutableCopy]; if (oneCopy == nil) oneCopy = [oneValue copy]; [ret setValue:oneCopy forKey:key]; } return ret; } @end
#pragma mark Table View Delegate Methods - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { [search resignFirstResponder];//取消键盘 search.text = @""; isSearching = NO; [tableView reloadData]; return indexPath; } - (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index { NSString *key = [keys objectAtIndex:index]; if (key == UITableViewIndexSearch) { [tableView setContentOffset:CGPointZero animated:NO];//搜索栏 return NSNotFound; } else return index; }
发表评论
-
float equal
2013-05-23 18:21 819- (BOOL)floatA:(float)f1 equalB ... -
Coding Guidelines for Cocoa
2013-05-17 16:53 666参考: https://developer.apple.com ... -
Cell
2013-05-16 14:32 788- (void)tableView:(UITableView ... -
Object-C编程规范
2013-05-15 10:49 7351.参考苹果的文档 “Coding Guidelines fo ... -
MacPorts
2013-02-28 18:12 613http://blog.csdn.net/lynjay/art ... -
KVC/KVO 监听对象属性变化
2013-01-10 23:09 7402http://blog.csdn.net/a6472953/a ... -
ios Associative 扩展属性
2013-01-08 16:45 1537@dynamic和@synthesize http://blo ... -
ObjC Dynamic
2013-01-08 15:21 774原文:http://www.onevcat.com/2012/ ... -
UITableView & UITextField
2012-11-08 00:35 835keyboard event ---------------- ... -
UIWebView
2012-10-24 11:06 745http://hi.baidu.com/wei_1123/it ... -
Device orientation
2012-10-15 16:20 747- (BOOL)shouldAutorotateToInter ... -
system notification
2012-10-12 15:22 626for UIApplication These notifi ... -
NSZombies
2012-08-09 08:51 668NSZombies搞定EXC_BAD_ACCESS http: ... -
Quartz 2D Programming Guide
2012-07-17 00:51 594Quartz 2D 内容不少啊 Graphics Trans ... -
NSCache
2012-07-12 14:25 755http://thenewself.blog.163.com/ ... -
NSCoding
2012-07-12 13:39 960@protocol NSCoding - (void ... -
分析 crash 报告的方法
2012-07-12 01:15 586http://blog.csdn.net/toss156/ar ... -
Multi-touch
2012-07-11 23:33 725智能与灵活与工作量>_< http://www.o ... -
iOS的多核编程和内存管理
2012-07-11 18:14 716http://anxonli.iteye.com/blog/1 ... -
NSCopying
2012-07-10 15:54 520http://www.apple.com.cn/develop ...
相关推荐
**Elasticsearch 集群安全加密插件 Search Guard** Search Guard是一款强大的安全解决方案,专为Elasticsearch设计,提供全面的数据保护、访问控制和安全监控功能。它可以帮助企业满足合规性要求,确保数据在传输和...
Elasticsearch 开发手册 Elasticsearch 是一个开源的、高扩展的、分布式的、提供多用户能力的全文搜索引擎,也是一个基于 Lucene 搜索的服务器,可以近乎实时地存储和搜索数据。Elasticsearch 能很方便地用于对大量...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
适用于7.17.1系列,例如Elasticsearch的7.17.12版本。 elasticsearch-analysis-ik 是一个常用的中文分词器,在 Elasticsearch 中广泛应用于中文文本的分析和搜索。下面是 elasticsearch-analysis-ik 分词器的几个...
**Elasticsearch 8.11 for Windows** Elasticsearch 是一个开源的分布式搜索引擎,以其高可伸缩性、实时性、灵活性以及强大的数据分析能力而闻名。在Windows平台上部署Elasticsearch,用户可以利用其强大的搜索和...
Elasticsearch 各个版本 jar 包下载 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产...
Elasticsearch 8.14.1 是一个高度可扩展的开源全文检索和分析引擎,专为分布式环境设计。它允许开发者和系统管理员快速、高效地存储、搜索和分析大量数据。Elasticsearch 广泛应用于日志分析、信息检索、网站搜索、...
《Elasticsearch 7.2.1 + SearchGuard + Kerberos + Kibana 集群测试环境部署详解》 本文档将详细阐述如何在Elasticsearch 7.2.1版本的基础上,集成SearchGuard安全插件、Kerberos认证服务以及Kibana可视化界面,...
Elasticsearch-Hadoop是Elasticsearch与Hadoop生态系统集成的重要组件,主要目的是让Hadoop能够无缝地访问和处理存储在Elasticsearch中的大数据。标题"elasticsearch-hadoop-8.8.0"指的是该组件的一个特定版本,即...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
"search-match"是一款用于文本搜索和匹配的工具,它在IT行业中主要用于帮助用户快速、准确地定位和查找特定的信息。这个安装包包含了实现这一功能的所有必要组件和资源。以下是关于"search-match"及其可能涉及的一些...
一般来说我们开发Elasticsearch会选择使用集成springboot,在网上找的springboot集成elasticsearch文章几乎都是extends ElasticsearchRepository的方式来实现。但是新版本ElasticsearchRepository里的方法基本上已经...
Elasticsearch 是一个流行的开源全文搜索引擎,常用于大数据分析和实时数据检索。然而,如果没有正确配置安全设置,它可能会暴露于未授权访问的风险中,这可能导致数据泄露或恶意操作。本文将详细讲解如何修复 ...
Elasticsearch 7.17.3 是一个高度可扩展的开源全文搜索引擎,以其强大的分布式、实时搜索和分析能力而闻名。它基于Lucene构建,但提供了更高级别的API和服务,使得管理和操作大规模数据变得更加简单。这个版本的...
《Elasticsearch-Jieba-Plugin 8.8.2:为Elasticsearch引入中文分词的强大力量》 Elasticsearch(ES)是一款强大的全文搜索引擎,广泛应用于大数据分析、日志检索、内容推荐等领域。然而,对于中文处理,Elastic...
Elasticsearch是一个强大的开源搜索引擎,基于Apache Lucene构建,它为开发者和数据分析师提供了高效、可扩展、实时的搜索和分析功能。6.8.18版本是Elasticsearch的一个稳定版本,它在前几个版本的基础上进行了优化...
elasticsearch-8.2.3 windows 版本。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的...
Elasticsearch 6.6.0 AArch64 ARM 是专为华为ARM架构服务器优化的搜索引擎和数据分析平台。这个版本是基于官方的x86发行版进行重新编译的,以适应ARM处理器的指令集,确保在华为的ARM服务器上能够高效、稳定地运行。...