         })
     }
 
-    override func textRectForBounds(bounds:CGRect) -> CGRect {
+    override public func textRectForBounds(bounds:CGRect) -> CGRect {
         var r = super.textRectForBounds(bounds)
         var top = ceil(nameLabel.font.lineHeight)
         r = UIEdgeInsetsInsetRect(r, UIEdgeInsetsMake(top + topMargin + marginForContent, 0.0, -marginForContent, 0.0))
         return CGRectIntegral(r)
     }
 
-    override func editingRectForBounds(bounds:CGRect) -> CGRect {
+    override public func editingRectForBounds(bounds:CGRect) -> CGRect {
         var r = super.editingRectForBounds(bounds)
         var top = ceil(nameLabel.font.lineHeight)
         r = UIEdgeInsetsInsetRect(r, UIEdgeInsetsMake(top + topMargin + marginForContent, 0.0, -marginForContent, 0.0))


    // MARK: Layout

    override func layoutSubviews() {
        super.layoutSubviews()
        validate()
    }

        }
    }

    public override var placeholder :String? {
        didSet {
            nameLabel.text = placeholder
            nameLabel.sizeToFit()
