在我的Iphone应用程序中,当用户输入符号“@”时,会弹出一个弹出窗口并显示他的所有朋友列表,他可以从中选择任何一个朋友。
但是现在我的客户需要做一些修改。如果用户输入@,弹出窗口不应该出现,但是当他在@之后键入任何字母时,所有以该字母开头的朋友姓名都应该弹出。 例如: - 如果用户输入@p - 弹出窗口将带有以字母P开头的所有朋友姓名。
如何做到这一点,我尝试了一些但却无法实现的目标 (我在加载视图时收到数组中的朋友列表) 现在我正在使用
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@"@"])
{
s=1;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[frndsView setCenter:CGPointMake(frndsView.center.x, frndsView.center.y-310)];
[UIView commitAnimations];
[commentField resignFirstResponder];
}
return YES;
}
答案 0 :(得分:1)
在文本
的textChanged上使用此代码NSMutableArray *subpredicates = [NSMutableArray array];
for(NSString *term in arryOfWordsToBeSearched) {
NSPredicate *p = [NSPredicate predicateWithFormat:@"self contains[cd] %@",term];
[subpredicates addObject:p];
}
NSPredicate *filter = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
result = (NSMutableArray*)[arryOfDummyData filteredArrayUsingPredicate: filter];
结果是一个数组