Transformer une NSAttributedString en texte brut
J'ai une instance de NSData
contenant attribué texte (NSAttributedString
) provenant d'un NSTextView
. Je veux convertir attribués chaîne d'une chaîne simple (NSString
) sans aucune mise en forme à faire une certaine analyse de texte (au moment de la conversion, je n'ai pas accès à l'originaires NSTextView ni ses NSTextStorage exemple).
Quelle serait la meilleure façon de le faire?
EDIT:
Par curiosité, j'ai examiné le résultat de:
[[[self textView] textStorage] words]
qui semblait être une chose très pratique pour faire des analyse de texte. Le tableau qui en résulte contient des instances de NSSubTextStorage (exemple ci-dessous du mot "Est"):
Orientale{
NSFont = "\"LucidaGrande 11.00 pt. P [] (0x7ffcaae08330) fobj=0x10a8472d0, spc=3.48\"";
NSParagraphStyle = "Alignement 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0,
FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0,
LineBreakMode 0, les Tabulations (\n 28L,\n 56L,\n 84L,\n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n 336L\n), DefaultTabInterval 0, les Blocs (null), les Listes (null),
BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0.05,
HeaderLevel 0"; }
NSSubTextStorage est probablement une classe privée que je ne pouvais pas trouver toute la documentation pour elle. Il conserve également toutes les mises en forme.
Vous devez vous connecter pour publier un commentaire.
Si je vous comprends bien vous avez un
NSData
, diredata
, contenant une codéNSAttributedString
. Pour inverser le processus:et pour obtenir le texte en clair sans les attributs de vous, alors n':
NSAttachmentCharacter
et si oui, vous pouvez tout simplement supprimer toutes les occurrences de il. Il est documenté dans le cadre deNSTextAttachment
.Mise à jour pour la Swift 2.2 /Swift 3:
Avec Swift 5 et mac os 10.0+,
NSAttributedString
a une propriété appeléestring
.string
a la déclaration suivante:Apple indique également sur
string
:Le suivant aire de Jeux de code montre comment utiliser
NSAttributedString
'sstring
de la propriété afin de récupérer la chaîne de contenu d'unNSAttributedString
exemple: