 	}
 
 
+	// TODO this is hacky but tintColor is quite special anyway. We should split this up to normalTintColor, highlightedTintColor and appliedTintColor.
+	open override var tintColor: UIColor? {
+		get { return super.tintColor }
+		set {
+			guard newValue != defaultTintColor else {
+				return
+			}
+
+			defaultTintColor = newValue
+
+			updateTintColor()
+		}
+	}
+
+
 	open override func tintColorDidChange() {
 		super.tintColorDidChange()
 

			}

			updateBorderColor()
		}
	}


		}

		super.borderColor = borderColor
	}


	fileprivate func updateTintColor() {
		let tintColor: UIColor?
		if highlighted, let highlightedTintColor = highlightedTintColor {
			tintColor = highlightedTintColor
		}
		else {
			tintColor = defaultTintColor
		}

		super.tintColor = tintColor
	}


