     /// Adds or removes the specified font trait within the specified range.
     ///
     /// - Parameters:
-    ///     - trait: A font trait.
+    ///     - traits: Font traits.
     ///     - range: The NSRange to inspect
     ///
-    public func toggle(_ fontTrait: UIFontDescriptorSymbolicTraits, inRange range: NSRange) {
+    public func toggle(_ fontTraits: UIFontDescriptorSymbolicTraits, inRange range: NSRange) {
         // Bail if nothing is selected
         if range.length == 0 {
             return
         }
 
-        let enable = !self.fontTrait(fontTrait, spansRange: range)
+        let enable = !self.fontTrait(fontTraits, spansRange: range)
 
-        modify(fontTrait, range: range, enable: enable)
+        modify(fontTraits, range: range, enable: enable)
     }
 
-    fileprivate func modify(_ fontTrait: UIFontDescriptorSymbolicTraits, range: NSRange, enable: Bool) {
+    fileprivate func modify(_ fontTraits: UIFontDescriptorSymbolicTraits, range: NSRange, enable: Bool) {
 
         enumerateAttribute(NSFontAttributeName,
                            in: range,

                                return
                            }

                            let newFont = font.modifyTraits(fontTrait, enable: enable)

                            self.beginEditing()
                            self.removeAttribute(NSFontAttributeName, range: range)

    /// Checks if the specified font trait spans the specified NSRange.
    ///
    /// - Parameters:
    ///     - traits: A font trait.
    ///     - range: The NSRange to inspect
    ///
    /// - Returns: True if the trait spans the entire range.
    ///
    public func fontTrait(_ traits: UIFontDescriptorSymbolicTraits, spansRange range: NSRange) -> Bool {
        var spansRange = true

        // Assume we're removing the trait. If the trait is missing anywhere in the range assign it.
