sto creando un app in cui ho per implementare la funzionalità in questo modo:Applicare formato RTF sul testo selezionato di UITextView in iOS
1) in TextView
2) Selezionare il testo da TextView
3) Consenti all'utente di applicare la funzionalità grassetto, corsivo e di sottolineatura sul testo selezionato.
Ho iniziato a implementarlo utilizzando NSMutableAttributedString. Funziona in grassetto e in corsivo ma sostituisce il testo testuale con solo il testo selezionato.
-(void) textViewDidChangeSelection:(UITextView *)textView
{
rangeTxt = textView.selectedRange;
selectedTxt = [textView textInRange:textView.selectedTextRange];
NSLog(@"selectedText: %@", selectedTxt);
}
-(IBAction)btnBold:(id)sender
{
UIFont *boldFont = [UIFont boldSystemFontOfSize:self.txtNote.font.pointSize];
NSDictionary *boldAttr = [NSDictionary dictionaryWithObject:boldFont forKey:NSFontAttributeName];
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc]initWithString:selectedTxt attributes:boldAttr];
txtNote.attributedText = attributedText;
}
Qualcuno può aiutarmi per implementare questa funzionalità?
Grazie in anticipo.
Questo è incorporato in 'UITextView' (come da iOS 6.0). Imposta la proprietà 'allowsEditingTextAttributes' su' YES'. – rmaddy
L'ho già fatto. Il mio problema è solo il testo selezionato con grassetto/corsivo rimane in textview. Altro testo rimosso. Voglio sostituire solo il testo selezionato con grassetto/corsivo nel testo textview. –
Abilitando la proprietà 'allowsEditingTextAttributes' non è necessario alcun codice che hai postato. Se selezioni del testo nella visualizzazione del testo, la visualizzazione del testo offre automaticamente l'opzione di menu BUI (grassetto/corsivo/sottolineato). Non è necessario scrivere alcun codice per questo. – rmaddy