             
             switch s.textAlignment {
             case .left, .natural:
-                s.placeholderLabel.x = s.leftViewWidth
+                s.placeholderLabel.x = s.leftViewWidth + s.textInset
             case .right:
-                s.placeholderLabel.x = s.width - s.placeholderLabel.width
+                s.placeholderLabel.x = s.width - s.placeholderLabel.width - s.textInset
             default:break
             }
             

            }
            
            s.placeholderLabel.transform = CGAffineTransform.identity
            s.placeholderLabel.x = s.leftViewWidth
            s.placeholderLabel.y = 0
        })
    }

        return super.becomeFirstResponder()
    }
    
    open var textInset: CGFloat = 0
    
    open override func textRect(forBounds bounds: CGRect) -> CGRect {
        
        return bounds.insetBy(dx: textInset, dy: 0)
    }
    
    open override func editingRect(forBounds bounds: CGRect) -> CGRect {
        return textRect(forBounds: bounds)
    }
    
	/**
     Prepares the view instance when intialized. When subclassing,
     it is recommended to override the prepare method
