0

在我的 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;
    } 
4

1 回答 1

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];

结果是一个数组

于 2013-01-16T09:32:10.193 回答