Detección de cadena roscada en UITextView

Estoy tratando de encontrar la secuencia con el que se UITextView en UITextView . He intentado UIDataDetectorTypeLink pero no funciona. Tampoco estoy seguro de que sea posible detectar la String . Estoy usando una UITextView en un UITableViewCell personalizado. de eso estoy tratando de detectar la secuencia tocada. También a continuación están mi código de muestra que probé. ¿Alguien puede ayudarme a encontrar lo que he hecho mal y cómo puedo resolver esto? Incluso si no es posible, ¿cómo puedo resolver este problema?

 NSMutableArray *sampleArray = [[NSMutableArray alloc]init]; NSMutableString *mutableString = [[NSMutableString alloc]init]; NSMutableAttributedString * string; sampleArray = [[postArray valueForKey:@"hash_tags"] objectAtIndex:indexPath.row]; for(NSString *sampleString in sampleArray){ if (mutableString.length == 0) { [mutableString appendString:sampleString]; }else{ [mutableString appendString:[NSString stringWithFormat:@", %@",sampleString]]; } string = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@",mutableString]]; // [string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0,[string length])]; } NSDictionary *linkAttributes = @{NSForegroundColorAttributeName: [UIColor colorWithRed:5.0f/255.0f green:107.0f/255.0f blue:153.0f/255.0f alpha:1.0f], NSUnderlineColorAttributeName: [UIColor greenColor],NSUnderlineStyleAttributeName: @(NSUnderlinePatternSolid)}; [string addAttribute:NSLinkAttributeName value:string range:NSMakeRange(0, [string length])];//[[string string] rangeOfString:sampleString]]; [cell.tagsTextView setAttributedText:string]; [cell.tagsTextView setDelegate:self]; [cell.tagsTextView setUserInteractionEnabled:YES]; cell.tagsTextView.scrollEnabled = NO; cell.tagsTextView.editable = NO; cell.tagsTextView.dataDetectorTypes = UIDataDetectorTypeLink; // cell.tagsTextView.textContainer.lineFragmentPadding = 0; // cell.tagsTextView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0); [cell.tagsTextView setLinkTextAttributes:linkAttributes]; 

UITextView Delegates

 -(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange { NSLog(@"url %@",URL); if ([[URL scheme] isEqualToString:@"username"]) { NSString *username = [URL host]; // do something with this username // ... return NO; } return YES; // let the system open this URL } 

Gracias por adelantado

Se agregó UITapGestureRecognizer a UITextView y a continuación se encuentra el método selector UITapGestureRecognizer .

 - (void) tapResponse:(UITapGestureRecognizer *)recognizer{ UITextView *textView = (UITextView *)recognizer.view; CGPoint location = [recognizer locationInView:textView]; NSLog(@"Tap Gesture Coordinates: %.2f %.2f -- %@", location.x, location.y,textView.text); CGPoint position = CGPointMake(location.x, location.y); //get location in text from textposition at point UITextPosition *tapPosition = [textView closestPositionToPoint:position]; //fetch the word at this position (or nil, if not available) UITextRange *textRange = [textView.tokenizer rangeEnclosingPosition:tapPosition withGranularity:UITextGranularityWord inDirection:UITextLayoutDirectionRight]; NSString *tappedSentence = [textView textInRange:textRange];//[self lineAtPosition:CGPointMake(location.x, location.y)]; NSLog(@"selected :%@ -- %@",tappedSentence,tapPosition); }