Comment mettre en gras certains mots dans mon UITextView en utilisant NSMutableAtsortingbutedSsortingng?

J'ai un UITextView et il y a certains mots que je lance avec NSSsortingng ssortingngWithFormat que j'aimerais avoir en gras.

J'ai regardé autour de Stack Overflow et essayé de suivre les messages, mais je suppose que je ne comprends pas.

Voici ce que j'ai joué avec:

NSRange boldedRange = NSMakeRange(0, 4); NSSsortingng *boldFontName = [[UIFont fontWithName:@"Helvetica-Bold" size:100]fontName]; NSMutableAtsortingbutedSsortingng *attrSsortingng = [[NSMutableAtsortingbutedSsortingng alloc] initWithSsortingng:self.name]; [attrSsortingng beginEditing]; [attrSsortingng addAtsortingbute:NSFontAtsortingbuteName value:boldFontName range:boldedRange]; [attrSsortingng endEditing]; self.resultsTextView.atsortingbutedText = attrSsortingng; self.resultsTextView.text = [NSSsortingng ssortingngWithFormat:@"One day, %@ was taking a walk and saw a %@ boy. He was %@ a %@.", attrSsortingng, self.adjective, self.adverb, self.noun]; 

Vous pouvez également le définir de la manière suivante si vous le souhaitez en définissant un dictionary dans son set, en tant qu'atsortingbut

 NSSsortingng *strTextView = @"This is some demo Text to set BOLD"; NSRange rangeBold = [strTextView rangeOfSsortingng:@"BOLD"]; UIFont *fontText = [UIFont boldSystemFontOfSize:10]; NSDictionary *dictBoldText = [NSDictionary dictionaryWithObjectsAndKeys:fontText, NSFontAtsortingbuteName, nil]; NSMutableAtsortingbutedSsortingng *mutAttrTextViewSsortingng = [[NSMutableAtsortingbutedSsortingng alloc] initWithSsortingng:strTextView]; [mutAttrTextViewSsortingng setAtsortingbutes:dictBoldText range:rangeBold]; [textViewTermsPolicy setAtsortingbutedText:mutAttrTextViewSsortingng]; 

Utilisez le code ci-dessous pour définir la string d'atsortingbut dans TextView.

  NSSsortingng *infoSsortingng =@"I am Kirit Modi from Deesa."; NSMutableAtsortingbutedSsortingng *attSsortingng=[[NSMutableAtsortingbutedSsortingng alloc] initWithSsortingng:infoSsortingng]; UIFont *font_regular=[UIFont fontWithName:@"Helvetica" size:20.0f]; UIFont *font_bold=[UIFont fontWithName:@"Helvetica-Bold" size:20.0f]; [attSsortingng addAtsortingbute:NSFontAtsortingbuteName value:font_regular range:NSMakeRange(0, 4)]; [attSsortingng addAtsortingbute:NSFontAtsortingbuteName value:font_bold range:NSMakeRange(5, 15)]; [attSsortingng addAtsortingbute:NSFontAtsortingbuteName value:font_regular range:NSMakeRange(16, infoSsortingng.length - 15 - 1)]; [self.txtView setAtsortingbutedText:attSsortingng]; 

OutPut:

entrez la description de l'image ici

Découvrez @CrazyYoghurt amélioration @Bbrame et @BenoitJadinon sur cette question SO précédente 3586871 Je l'utilise depuis plus d'un an et ça fonctionne très bien. Une limitation: je ne pense pas que vous pouvez mettre en gras plusieurs fois la même string si elle apparaît plus d'une fois dans votre string d'origine. Mais vous pouvez probablement dépenser le code pour le faire si vous le souhaitez.