2012-08-02 24 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

相關問題