DAHAttributed 1.1.0

DAHAttributed 1.1.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2016
SPMSupports SPM

Maintained by David House.



  • By
  • David House

Attributed

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

Installation

Overview

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?"