2012-08-02 52 views
0

我试图在应用程序中实现自动完成方法。当我键入字符时,它会返回匹配第一个字符的单词。 例如,如果我输入“B”或“ba”,它将返回以“ba”开头的字符串,如“Ballon”和“Ball”。但是在我的数组中,有一个字符串中包含多个由'('或'space'分隔的单词,例如“White Ball”或“Giant(Big)”,我需要获取这些字符串。将得到高度赞赏。在包含多个由特殊字符分隔的单词的字符串上搜索

这里是我使用的代码,

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    autocompleteTableView.hidden = NO; 

    NSString *substring = [NSString stringWithString:textField.text]; 
    substring = [substring stringByReplacingCharactersInRange:range withString:string]; 
    [self searchAutocompleteEntriesWithSubstring:substring]; 
    return YES; 
} 

- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring { 

    [autocompleteList removeAllObjects]; 
    for(NSString *curString in contentArray) 
    { 
     NSRange substringRange = [curString rangeOfString:substring options:NSCaseInsensitiveSearch]; 

     if (substringRange.location == 0) 
     { 
      [autocompleteList addObject:curString]; 
     } 
    } 
    [autocompleteTableView reloadData]; 
} 

感谢

回答

0

问题就出在你的,如果条件

if (substringRange.location == 0) 
    { 
     [autocompleteList addObject:curString]; 
    } 

由于要检查位置0 ,只有以substring开头的字符串才会被返回。如下更改条件应该可以帮助您解决问题。

if (substringRange.location != NSNotfound) 
    { 
     [autocompleteList addObject:curString]; 
    } 
+0

@ Suhas ..谢谢队友。有效。 :) – Sibin 2012-08-02 06:59:28

相关问题