UITextField中文搜尋,uitextfield
匯入標頭檔
#import "ChineseInclude.h"
#import "PinYinForObjc.h"
NSMutableArray *searchResults;//可變數組,添加搜尋到的資料
設定資料來源
- (NSArray *)dataArray { if (!_dataArray) { _dataArray = @[@"百度",@"六六",@"Google",@"蘋果",@"and",@"table",@"view",@"and",@"and",@"蘋果IOS",@"Googleandroid",@"微軟",@"微軟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>0&&![ChineseInclude isIncludeChineseInString:mySearchBar.text]) { for (int i=0; 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>0) { [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>0) { [searchResults addObject:self.dataArray[i]]; } } } } else if (mySearchBar.text.length>0&&[ChineseInclude isIncludeChineseInString:mySearchBar.text]) { for (NSString *tempStr in self.dataArray) { NSRange titleResult=[tempStr rangeOfString:mySearchBar.text options:NSCaseInsensitiveSearch]; if (titleResult.length>0) { [searchResults addObject:tempStr]; } } } NSLog(@"搜尋結果:%@",searchResults);
//在這裡重新整理 // [_tableView reloadData];}
:
Demo下載連結:http://pan.baidu.com/s/1bncyjZD