Как упомянуть пользователей с "@" в таких приложениях, как Instagram

Я создаю приложение с возможностью обмена фотографиями и пытаюсь добавить в функциональность упоминание (или тегирование) пользователей. Twitter - это то, что первоначально начинало использовать "@" с именем пользователя, чтобы помечать пользователей, но теперь все, от Facebook до Instagram, использует его. Это то, что реализовано на стороне iOS или на заднем плане? В настоящее время я программирую серверную часть в Django, но по какой-то причине я думаю, что это будет сделано на стороне iOS. На удивление очень мало информации о том, как упомянуть пользователей в Django или iOS.

По сути, при создании сообщения я хотел бы создать упоминание пользователя, введя "@", за которым следует имя пользователя (без пробелов), которое будет отображать его имя в сообщении, например: @username, которое будет кликабельным, ведущим вернуться к профилю этого пользователя. Если я не совсем уверен с моим вопросом, пожалуйста, дайте мне знать. Любая помощь, такая как указание мне в правильном направлении, с чего начать что-то вроде этого, будет высоко ценится. Спасибо!:)

2 ответа

Решение

Слушайте вход на iOS. Когда пользователь вводит @, а затем символ, позвоните по URL на вашем сервере (/user/lookup/?username=joe например), который направляет к представлению, которое ищет пользователей, начинающихся с joe, Верните его как json и отобразите в выпадающем списке.

Источник: Как упомянуть пользователей с "@" в таких приложениях, как Instagram

Вы можете попробовать что-то вроде этого в делегате 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,

Другие вопросы по тегам