An extension to NSAttributedString for creating attributed strings by using a given format string as a template into which the remaining argument values are substituted. This is helpful for using in conjunction with internationalisation.
@interface NSAttributedString (CCLFormat)
+ (NSAttributedString *)attributedStringWithFormat:(NSString *)format, ...;
@end
NSAttributedString *blue, *green, *never, *result;
blue = [[NSAttributedString alloc] initWithString:@"Blue" attributes:@{
NSFontAttributeName: [UIFont boldSystemFontOfSize:16.0f],
NSForegroundColorAttributeName: [UIColor blueColor],
}];
green = [[NSAttributedString alloc] initWithString:@"Green" attributes:@{
NSFontAttributeName: [UIFont boldSystemFontOfSize:16.0f],
NSForegroundColorAttributeName: [UIColor greenColor],
}];
never = [[NSAttributedString alloc] initWithString:@"never" attributes:@{
NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle),
}];
result = [NSAttributedString attributedStringWithFormat:@"%@ and %@ must %@ be seen", blue, green, never];
CocoaPods is the recommended way to add NSAttributedString+CCLFormat to your project.
Here's an example podfile that installs NSAttributedString+CCLFormat.
pod 'NSAttributedString+CCLFormat'
NSAttributedString+CCLFormat is released under the BSD license. See LICENSE.