在iOS

时间:2015-12-10 18:29:51

标签: ios objective-c uitableview uitextfield nspredicate

我已经在tableview和文本字段中实施了搜索方法。现在,当我在textfield中写入一些值并点击搜索按钮时,它会在tableview中搜索。但是,我希望它是动态的意味着我开始输入textfield时它应该开始搜索而不点击任何button

我该怎么做?

3 个答案:

答案 0 :(得分:3)

要在ios中实现动态搜索,我们还可以使用文本框作为搜索栏。

转到StoryBoard并进行以下更改

  1. 将文本框添加到视图控制器并分配出口和代理。
  2. 现在查看viewcontroller.m并粘贴以下代码
  3. 
    
    -(void)textFieldDidChange:(UITextField *)textField
    {
        searchTextString=textField.text;
    
        [self updateSearchArray:searchTextString];
    }
    
    
    -(void)updateSearchArray:(NSString *)searchText
    {
        
        if(searchText.length==0)
       {
            isFilter=NO;    }
        else{
          
           isFilter=YES;
            
           searchArray=[[NSMutableArray alloc]init];
            
            for(NSString *string in responceArray){
    
            NSRange stringRange = [[NSString stringWithFormat:@"%@",string]
                                   rangeOfString:searchtext.text options:NSCaseInsensitiveSearch];
                
            if (stringRange.location != NSNotFound) {
                [searchArray addObject:string];
    
            }
                
            }
            
            [jobsTable reloadData];
        }
        
        }
    
    
    

答案 1 :(得分:2)

将与点击相同的连接方法更改为连接检查器中的事件值已更改(请参见最底部的屏幕截图)。

enter image description here

答案 2 :(得分:2)

只需在Editing Changed Event的{​​{1}}上连接此方法即可。因此,当您更改其值时,将调用此方法。

TextField

此处- (IBAction)txtValueChanged:(UITextField)sender { [self dynamicSearchInto:sender.text]; //From here, we are passing text of textField. } allData,其中包含您的所有数据。 array是一个只包含搜索数据的数组。因此,请确保将searchArray的计数设置为searchArray行计数。并根据此tableview's将数据设置为tableview。

searchArray

希望,这就是你要找的东西。任何关注都会回复给我。