     
     // MARK: properties
     
+    /**
+        The formatter to use before displaying content in the title label. This can be the `selectedTitle`, `deselectedTitle` or the `errorMessage`.
+        The default implementation converts the text to uppercase.
+    */
     var titleFormatter:(String -> String) = { (text:String) -> String in
         return text.uppercaseString
     }
     
+    /**
+        Identifies whether the text object should hide the text being entered.
+    */
     var secureTextEntry:Bool = false {
         didSet {
             self.textField.secureTextEntry = secureTextEntry

    
    // MARK: - textfield delegate

    func textFieldDidBeginEditing(textField: UITextField) {
        self.updateControl(true)
        if let delegate = self.delegate {
            delegate.watermarkedTextFieldDidBeginEditing(self)
        }
    }
    func textFieldDidEndEditing(textField: UITextField) {
        self.updateControl(true)
        if let delegate = self.delegate {
            delegate.watermarkedTextFieldDidEndEditing(self)

    
    // MARK: - layout
    
    override public func layoutSubviews() {
        super.layoutSubviews()

        self.placeholderLabel.frame = self.placeholderLabelRectForBounds(self.bounds)
