0
我有一個用戶想要在其中輸入年份的文本框。我在textfield下面有一個tableview,我在其中傳入了一個數組。當用戶輸入年份時,表格視圖應該在表格視圖中顯示從數組開始的年份列表,並且它應該匹配數組中的前兩個單詞。我試過了一段代碼,但它並沒有顯示它的年數。我的代碼是這樣的,IOS中的自動完成textfield多年
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"Range:%@",NSStringFromRange(range));
NSLog(@"%@",textField.text);
NSString *passcode = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSLog(@"%@",passcode);
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"SELF CONTAINS %@",passcode];
year1Array = [year1Array filteredArrayUsingPredicate:predicate];
NSLog(@"%@", year1Array);
if ([year1Array count]==0) {
_year01.hidden=true;
}else{
_year01.hidden = FALSE;
}
[_year01 reloadData];
return TRUE;
}
的實現代碼如下代碼是這樣的,
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView==_year01) {
return [year1Array count];
}else{
return [year2Array count];
}
return YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (tableView == _year01){
cell.textLabel.text=[year1Array objectAtIndex:indexPath.row];
}else{
cell.textLabel.text=[year2Array objectAtIndex:indexPath.row];
}
cell.backgroundColor=[UIColor grayColor];
cell.textLabel.textColor=[UIColor whiteColor];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell=[tableView cellForRowAtIndexPath:indexPath];
if (tableView == _year01){
self.year1.text=[year1Array objectAtIndex:indexPath.row];
self.year01.hidden=YES;
}else{
self.year2.text=[year2Array objectAtIndex:indexPath.row];
self.year02.hidden=YES;
}
}
讓我試試。 @iPatel – Raheel
Bro只有一次顯示錶格視圖,當我重新回到不顯示tableview的那一年時。 @iPatel – Raheel
如果([year1Array count] == 0)無法獲得您的條件if { _year01.hidden = true; } else { _year01.hidden = FALSE; } 如果它是真的,那麼你的表格將被顯示,否則它將被隱藏 – iPatel