El text atribuido UITextView es nulo después de configurarse

Tengo un UICollectionViewCell personalizado con un UITextView no editable y no seleccionable. En el método cellForItemAtIndexPath: configuro la propiedad attributedText de UITextView, y muestra bien con todos los attributes. Sin embargo, cuando bash acceder a ese text atribuido más tarde (en el método de acción de un reconocedor de gesto de toque), el valor es nulo.

Aquí es cómo se ve mi código:

Controlador de vista:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { TNCommentCollectionViewCell *commentCell = [collectionView dequeueReusableCellWithReuseIdentifier:kCommentCellIdentifier forIndexPath:indexPath]; TNComment *comment = [self.comments objectAtIndex:indexPath.row]; commentCell.textView.attributedText = [self commentStringForComment:comment]; return commentCell; } - (NSAttributedString *)commentStringForComment:(DAFeedComment *)comment { NSString *usernameString = [NSString stringWithFormat:@"@%@", comment.username]; NSDictionary *usernameAttributes = @{ NSForegroundColorAttributeName : [UIColor usernameColor], NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:14.0f] }; NSAttributedString *attributedUsernameString = [[NSAttributedString alloc] initWithString:usernameString attributes:usernameAttributes]; NSMutableAttributedString *labelString = [attributedUsernameString mutableCopy]; NSDictionary *commentAttributes = @{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:14.0f] }; [labelString appendAttributedString:[[NSAttributedString alloc] initWithString:@" "]]; [labelString appendAttributedString:[[NSAttributedString alloc] initWithString:comment.comment attributes:commentAttributes]]; return labelString; } 

Célula de vista de colección:

 - (void)awakeFromNib { [super awakeFromNib]; self.textView.textContainerInset = UIEdgeInsetsZero; UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)]; tapGesture.numberOfTapsRequinetworking = 1; [self.textView addGestureRecognizer:tapGesture]; } - (void)textViewTapped:(UITapGestureRecognizer *)recognizer { UITextView *textView = (UITextView *)recognizer.view; NSLayoutManager *layoutManager = textView.layoutManager; CGPoint location = [recognizer locationInView:textView]; location.x -= textView.textContainerInset.left; location.y -= textView.textContainerInset.top; NSUInteger characterIndex = [layoutManager characterIndexForPoint:location inTextContainer:textView.textContainer fractionOfDistanceBetweenInsertionPoints:nil]; if( characterIndex < textView.textStorage.length ) { NSLog(@"%@", textView.attributedText); } } 

que conduce a una salida de solo "(nulo)". Sin embargo, si imprimo la propiedad de text de UITextView, se imprimirá el text real, pero no el text atribuido.

¿Estoy haciendo algo mal? Realmente agradecería cualquier ayuda

¡Gracias!

Tuve el mismo problema. La solución para mí fue habilitar la propiedad seleccionable UITextView en el guión gráfico. Después de eso, todo funcionó.

Espero que ayude