Commit 1eafbc83 by Orkhan Alikhanov

Added ability to change password visibility icons

parent b862f893
...@@ -333,6 +333,20 @@ open class TextField: UITextField { ...@@ -333,6 +333,20 @@ open class TextField: UITextField {
/// A reference to the visibilityIconButton. /// A reference to the visibilityIconButton.
open fileprivate(set) var visibilityIconButton: IconButton? open fileprivate(set) var visibilityIconButton: IconButton?
/// Icon for visibilityIconButton when in the on state.
open var visibilityIconOn = Icon.visibility {
didSet {
visibilityIconButton?.image = visibilityIcon
}
}
/// Icon for visibilityIconButton when in the off state.
open var visibilityIconOff = Icon.visibilityOff {
didSet {
visibilityIconButton?.image = visibilityIcon
}
}
/// Enables the visibilityIconButton. /// Enables the visibilityIconButton.
@IBInspectable @IBInspectable
open var isVisibilityIconButtonEnabled: Bool { open var isVisibilityIconButtonEnabled: Bool {
...@@ -350,10 +364,10 @@ open class TextField: UITextField { ...@@ -350,10 +364,10 @@ open class TextField: UITextField {
return return
} }
visibilityIconButton = IconButton(image: isSecureTextEntry ? Icon.visibility : Icon.visibilityOff, tintColor: placeholderNormalColor.withAlphaComponent(0.54)) isSecureTextEntry = true
visibilityIconButton = IconButton(image: visibilityIcon, tintColor: placeholderNormalColor.withAlphaComponent(0.54))
visibilityIconButton!.contentEdgeInsetsPreset = .none visibilityIconButton!.contentEdgeInsetsPreset = .none
visibilityIconButton!.pulseAnimation = .centerRadialBeyondBounds visibilityIconButton!.pulseAnimation = .centerRadialBeyondBounds
isSecureTextEntry = true
clearButtonMode = .never clearButtonMode = .never
rightViewMode = .whileEditing rightViewMode = .whileEditing
rightView = visibilityIconButton rightView = visibilityIconButton
...@@ -661,7 +675,7 @@ fileprivate extension TextField { ...@@ -661,7 +675,7 @@ fileprivate extension TextField {
return return
} }
v.image = self.isSecureTextEntry ? Icon.visibilityOff?.tint(with: v.tintColor.withAlphaComponent(0.54)) : Icon.visibility?.tint(with: v.tintColor.withAlphaComponent(0.54)) v.image = self.visibilityIcon
}) })
} }
} }
...@@ -758,3 +772,10 @@ extension TextField { ...@@ -758,3 +772,10 @@ extension TextField {
}) })
} }
} }
private extension TextField {
/// Visibility icon based on isSecureTextEntry value.
var visibilityIcon: UIImage? {
return isSecureTextEntry ? visibilityIconOff : visibilityIconOn
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment