Je reçois en entrée un NSAttributedString
pouvant contenir une image attachée comme NSTextAttachment
. Je dois vérifier si une telle image est attachée et, dans ce cas, l'enlever. J'ai cherché des publications liées sans succès, comment pourrais-je faire ceci?Comment détecter si un NSAttributedString contient un NSTextAttachment et le supprimer?
EDIT: J'essaie ceci:
let mutableAttrStr = NSMutableAttributedString(attributedString: textView.attributedText)
textView.attributedText.enumerateAttribute(NSAttachmentAttributeName, in: NSMakeRange(0, textView.attributedText.length), options: NSAttributedString.EnumerationOptions(rawValue: 0)) { (value, range, stop) in
if (value as? NSTextAttachment) != nil {
mutableAttrStr.replaceCharacters(in: range, with: NSAttributedString(string: ""))
}
}
Si le textView.attributedText
contient plus d'une pièce jointe (je vois plusieurs \u{ef}
dans son string
), je me attendais l'énumération pour correspondre à la condition if (value as? NSTextAttachment) != nil
plusieurs fois mais ce bloc de code n'est exécuté qu'une seule fois.
Comment puis-je supprimer toutes les pièces jointes?
Pourriez-vous rechercher et supprimer tous les caractères de fixation: https://developer.apple.com/reference/uikit/nstextattachment/1508411-attachment_character – MathewS
énumèrent les attributeString pour 'NSAttachmentAttributeName', et supprimez-les. Voici un code que vous pouvez regarder: http://stackoverflow.com/questions/29152660/extract-uiimage-from-nsattributed-string/29153172#29153172 – Larme
@MathewS merci, et quelle est la façon la plus appropriée d'énumérer les caractères d'un ' NSAttributedString' pour vérifier si 'NSAttachmentCharacter' devrait être? – AppsDev