Garoal Garoal - 4 months ago 52
iOS Question

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
.

Answer
  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:.