TTTAttributedLabel обнаруживает несколько ссылок

Есть ли способ определить, какая ссылка нажата? Я могу открыть "следующий" ВК, но не могу определить, какое слово. Вот как я определяю, какие слова должны быть ссылками:

NSArray *words = [cell.lblDescription.text componentsSeparatedByString:@" "];

    for (NSString *word in words) {
        if ([word hasPrefix:@"@"]) {
            at = [cell.lblDescription.text rangeOfString:word];
            [cell.lblDescription addLinkToURL:[NSURL URLWithString:@"action://at"] withRange:at];

        }else if ([word hasPrefix:@"#"]) {
            hash = [cell.lblDescription.text rangeOfString:word];
            [cell.lblDescription addLinkToURL:[NSURL URLWithString:@"action://hash"] withRange:hash];
        }
    }

Вот метод для ссылки ссылка:

- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {

if ([[url scheme] hasPrefix:@"action"]) {
    if ([[url host] hasPrefix:@"hash"]) {
        /* load help screen */
        UIStoryboard  *storyboard=[UIStoryboard storyboardWithName:@"viewTags" bundle:nil];
        OIOI_VC_ViewTags *viewController =[storyboard instantiateViewControllerWithIdentifier:@"viewTags"];
        viewController.str_word = ??????;
        [self.navigationController pushViewController:viewController animated:YES];

    }
}

1 ответ

Решение

Вы должны включить слово в URL. Таким образом, вместо использования URL action://atВы могли бы использовать action://at?foo; в вашем обратном вызове вы можете получить query часть URL, и это будет прослушиваемое слово.

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