Im NSAttributedString String ersetzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Im NSAttributedString String ersetzen

    Moin,

    ich versuche gerade in einem NSAttributedString ein Suchen&Ersetzen zu basteln. Bei einem normalen String rockt das mit .replacingOccurrences(of:, with:).
    In einem NSAttributedString ist das wohl nicht so leicht.

    Durch Tante Suchmaschine habe ich mir folgende Extension zusammengebastelt:

    Quellcode

    1. extension NSAttributedString {
    2. func replacing(placeholder:String, with valueString:String) -> NSAttributedString {
    3. if let range = self.string.range(of:placeholder)?.nsRange(in: string) {
    4. let mutableText = NSMutableAttributedString(attributedString: self)
    5. mutableText.replaceCharacters(in: range, with: valueString)
    6. return mutableText as NSAttributedString
    7. }
    8. return self
    9. }
    10. }
    Das ersetzt aber nur das erste Vorkommen eines Strings. Jetzt sehe ich vor lauter Wäldern den Baum nicht mehr.

    Wie schaffe ich es, dass ich alle Vorkommen meines Markers im Text finde und ersetze?

    Hintergrund: ich erstelle eine Textvorlage mit Markern á la <<Name>>. Dabei kann der eine Marker mehrmals in der Vorlage vorkommen und sollte dann auch immer ersetzt werden.

    Wäre um einen Tipp sehr dankbar.

    LG

    Mischa