stringcocoareplacensattributedstringfoundation

Replace substring of NSAttributedString with another NSAttributedString


I want to replace a substring (e.g. @"replace") of an NSAttributedString with another NSAttributedString.

I am looking for an equivalent method to NSString's stringByReplacingOccurrencesOfString:withString: for NSAttributedString.


Solution

    1. Convert your attributed string into an instance of NSMutableAttributedString.

    2. The mutable attributed string has a mutableString property. According to the documentation:

      "The receiver tracks changes to this string and keeps its attribute mappings up to date."

      So you can use the resulting mutable string to execute the replacement with replaceOccurrencesOfString:withString:options:range:.