Comment puis-je copier de manière programmatique du texte formaté (par ex. italique ) à partir d'une UITextView, de sorte que lorsqu'elle est collée dans un autre programme (par exemple Mail), le formatage est conservé ? Je suppose que l'approche correcte consiste à copier une NSAttributedString dans le presse-papiers. Actuellement, je suis en mesure de copier une chaîne de caractères ordinaire dans le presse-papiers en procédant comme suit :
NSString *noteTitleAndBody = [NSString stringWithFormat:@"%@\n%@", [document title], [document body]];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = noteTitleAndBody;
J'ai remarqué que si je sélectionne et copie le texte de mon UITextView avec l'élément de menu standard Copier de la sélection de texte, cela fonctionne comme souhaité. Mais j'ai besoin d'y accéder via un bouton que j'ai créé.
J'ai pensé que peut-être je pourrais juste appeler le UIResponderStandardEditActions Méthode de copie. En utilisant la méthode suivante, le collage dans Mail a conservé le formatage, mais mon application s'est également plantée.
NSMutableAttributedString *noteTitleAndBody = [[NSMutableAttributedString alloc] initWithString:[document title]];
[noteTitleAndBody appendAttributedString:[document body]];
[noteTitleAndBody copy:nil];
Des exemples de la manière correcte de procéder seraient très appréciés.
PS - Je suis conscient qu'il existe des fils de discussion relatifs à la NSAttributedString et au tableau d'affichage, mais il semble qu'ils soient soit pour le cacao , ne pas faire référence à la méthode de copie UIResponderStandardEditActions ou sont antérieurs à iOS 6, où de nombreux attributs de UITextView sont devenus disponibles.