Latest 1.1.0
License MIT
Platforms ios 8.0, osx 10.10, tvos 9.0, requires ARC


Carthage compatible
CocoaPods Compatible
GitHub license
Build Status

Creating NSAttributedString objects can be cumbersome to do in code. This library adds a helper object that can apply attributes to strings easily.



Add the following to your Cartfile:

github "davidahouse/Attributed" "master"

Then run carthage update.

Follow the current instructions in Carthage’s README
for up to date installation instructions.


Add the following to your Podfile:

pod 'DAHAttributed'

You will also need to make sure you’re opting into using frameworks:


Then run pod install.


Creating a NSAttributedString with different formats applied to different sections of the string involves
a lot of code. If you have some basic formatting needs, and some strings, this library allows for creating
an NSAttributedString quickly.

The helper class is called Attributed contains a set of formatting attributes, then gives a simple set
of methods for applying those attributes to strings or NSAttributedStrings. It also provides a way for
strings and NSAttributedStrings to be added together.

Creating an Attributed object

  • No formatting at all
let noFormatting = Attributed()
  • Apply a color
let redText = Attributed(color: NSColor.redColor())
let blueText = Attributed(color: NSColor.blueColor())
  • Apply a font
let boldText = Attributed(font: NSFont.boldSystemFontOfSize(24))
  • Multiple values
let detailsText = Attributed(attributes: [NSForegroundColorAttributeName: NSColor.greenColor(), NSFontAttributeName: NSFont.systemFontOfSize(18)])

Using an Attributed object

  • Apply the formatting to a String
let stringWithAttributes = redText.toString { "Hi mom!" }
  • Apply the formatting to a NSAttributedString
let attributedStringWithAttributes = redText.toString { NSAttributedString(string: "The quick brown fox") }
  • Combining Strings
let multipleStrings = boldText.combine(strings: "Hi mom!", "The quick brown fox")
  • Nesting
let nestedStrings = redText.toString { boldText.toString { "Header: " } + "here are the details" }
  • More nesting
let anotherNestedString = redText.toString { boldText.toString { "Header: " } + detailsText.toString { "here are the details" } + blueText.toString{ "@" } }
  • Strings and attributed strings can be added together
let addedString = stringWithAttributes + " How are you?"

Latest podspec

    "name": "DAHAttributed",
    "version": "1.1.0",
    "summary": "A Swift helper for creating NSAttributedString objects",
    "description": "Creating NSAttributedStrings involve quite a bit of boilerplate code, but withnAttributed, creating them is easy.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "David House": "[email protected]"
    "platforms": {
        "ios": "8.0",
        "osx": "10.10",
        "tvos": "9.0"
    "source": {
        "git": "",
        "tag": "1.1.0"
    "source_files": "Sources",
    "header_dir": "Attributed",
    "module_name": "Attributed",
    "ios": {
        "exclude_files": [
    "tvos": {
        "exclude_files": [
    "osx": {
        "exclude_files": [
    "requires_arc": true

Pin It on Pinterest

Share This