Come impostare un testo di UitextView per essere in grassetto e non cliccabile

StackOverflow https://stackoverflow.com//questions/22064380

  •  23-12-2019
  •  | 
  •  

Domanda

Ho il seguente html in un UITextView e vorrei renderlo in un UITextView

è il mio corpo per la nota

<a href="/arc/item/21">food item - more item stuff</a>;`
.

Lasciatemi aggiungere: attualmente mostra come blu e sottolineato e non cliccabile.Vorrei renderlo in grassetto e non cliccabile.Ho letto i documenti riguardanti linkTextAttributes ma, non aver usato questo, è un po 'oltre me e non vedo davvero un modo semplice per manipolare questo.Come renderò solo il link sopra in grassetto e nero (non blu) e mantenere la natura non cliccabile?

È stato utile?

Soluzione

Aggiornamento (Soluzione utilizzando LinkTextAtTattributes di UitextView )

self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO;  // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
                                         NSForegroundColorAttributeName : [UIColor redColor]};

...

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";
.

Come puoi vedere nei commenti, non sono stato in grado di impostare un nuovo carattere per LinkTextAtTibutes, anche se l'attributo a colori funzionava come previsto.

Se riesci a scappare con l'attributo a colori o qualche altro attributo di testo per modellare i tuoi URL e non devi preoccuparti di disabilitato UitextView Scorrimento, allora questa potrebbe essere la soluzione.


.

Precedente (Soluzione alternativa)

Se stai usando Storyboard / XIB, assicurati di aver deselezionato Detection -> Link per la tua UitextView. Puoi rendere il tuo link in grassetto impostando il suo carattere contenitore per un carattere tipografico audace. Se si desidera supportare diversi stili di testo / carattere in un oggetto stringa, allora dovresti cercare davvero NSattributedString o NsmutableATtributedString .

See: https://Developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/nsattributedstring_class/reference/reference.html .

Esempio :

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];

UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top