次のコードを使用すると、UITextfieldに入力された値を、以前に追加された文字列オブジェクトの配列と比較してUITableviewに表示することにより、自動的に提案できます。これは問題なく機能しますが、1つの単語に対してのみです。
では、ユーザーがコンマを入力してからもう一度入力を開始した後、同じ文字列配列でコンマの後に入力した文字の候補をもう一度検索できるように、コードを変更できますか?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField.tag == tagTextFieldTag) //The text field where user types
{
textField.autocorrectionType = UITextAutocorrectionTypeNo;
autocompleteTableView.hidden = NO; //The table which displays the autosuggest
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring stringByReplacingCharactersInRange:range withString:string];
if ([substring isEqualToString:@""])
{
autocompleteTableView.hidden = YES; //hide the autosuggest table if textfield is empty
}
[self searchAutocompleteEntriesWithSubstring:substring]; //The method that compares the typed values with the pre-loaded string array
}
return YES;
}
- (void)searchAutocompleteEntriesWithSubstring:(NSString *)substring {
[autoCompleteTags removeAllObjects];
for(Tag *tag3 in tagListArray) //tagListArray contains the array of strings
//tag3 is an object of Tag class, which has a single attribute called 'text'
{
NSString *currentString = tag3.text;
NSRange substringRange = [currentString rangeOfString:substring];
if(substringRange.location ==0)
{
[autoCompleteTags addObject:currentString];
}
}
[autocompleteTableView reloadData];
}