Come impostare un testo di UitextView per essere in grassetto e non cliccabile
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?
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 .
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;
...
.