如何在Instagram等应用中提及“@”用户

时间:2012-11-14 23:24:49

标签: ios django tagging instagram

我正在创建一个包含照片共享的应用,我正在尝试添加提及(或标记)用户的功能。 Twitter最初开始使用“@”,用户名来标记用户,但现在从Facebook到Instagram的所有内容都在使用它。这是在iOS端还是在后端实现的东西?我目前在Django编程后端,但由于某种原因,我认为这将在iOS端完成。令人惊讶的是,关于如何在Django或iOS中提及用户的信息非常少。

基本上,在创建帖子时,我想通过输入“@”然后输入用户名(之间没有空格)来创建用户提及,这将在帖子中显示他们的名字,如下所示:@username将是可点击,返回该用户的个人资料。如果我对我的问题有任何疑问,请告诉我。任何帮助,例如指向我从哪里开始的正确方向,将非常感激。谢谢! :)

2 个答案:

答案 0 :(得分:3)

收听iOS上的输入。当用户键入@后跟一个字符时,请调用服务器上的网址(例如/user/lookup/?username=joe),该网址会路由到查看以{{1}开头的用户的视图}。将其作为json返回并在下拉列表中显示。

来源:How to mention users with "@" in app like Instagram

答案 1 :(得分:0)

你可以在UITextView委托中尝试这样的事情:

- (void)textViewDidChange:(UITextView *)textView
{
    _words = [self.textView.text componentsSeparatedByString:@" "];
    NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[cd] '@'"];
    NSArray* names = [_words filteredArrayUsingPredicate:predicate];
    if (_oldArray)
    {
        NSMutableSet* set1 = [NSMutableSet setWithArray:names];
        NSMutableSet* set2 = [NSMutableSet setWithArray:_oldArray];
        [set1 minusSet:set2];
        if (set1.count > 0)
            NSLog(@"Results %@", set1);
    }
    _oldArray = [[NSArray alloc] initWithArray:names];
}

其中_words,_searchResults和_oldArray是NSArrays