ユーザーが名前を入力するテキストフィールドがあります。テキストフィールドに文字を入力すると、「T」としましょう。入力した文字に関して、iPhoneの連絡先リストから名前の候補を取得するにはどうすればよいですか。
また、入力した名前に対応する適切な番号を表示する必要があります。
私はアップルのドキュメントを読みました、
貴重な提案やサンプルコードスニペットを教えてください。
前もって感謝します :)
編集
Anil Kothari 氏が提案したコードを viewDidLoad メソッドに記述したため、ログ (コンソール) で連絡先を表示できました。
Anil Kothari 氏が提案したように、テキスト フィールドのデリゲート メソッドの検索バーコードを次のように実装しました。
- (void)textFieldDidBeginEditing:(UITextField *)atextField
{
if(searching)
return;
searching = YES;
}
- (void) searchTableView
{
textField = [self.fields objectAtIndex:0];
NSString *searchText = textField.text;
for (UIView *subview in searchBar.subviews)
{
if ([subview isKindOfClass:[UITextField class]])
{
textField = (UITextField *)subview;
break;
}
}
textField.enablesReturnKeyAutomatically = NO;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
//searchArray contains matched names of friends with the searching string
for (NSString *sTemp in contactList)
{
txtToSearch =[[NSString alloc] initWithString:[sTemp substringWithRange:NSMakeRange(0,[searchText length])]];
textField = [self.fields objectAtIndex:0];
txtToSearch = textField.text;
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[copyListOfItems addObject:sTemp];
}
[searchArray release];
searchArray = nil;
}
-(BOOL)textField:(UITextField *)atextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[copyListOfItems removeAllObjects];
if([string length] > 0)
{
searching = YES;
[self searchTableView];
}
else
{
searching = NO;
}
}
しかし、まだ機能していません:(