From 41d2c1cc08b5b1f6b8cc1a86a3092d49aae952ac Mon Sep 17 00:00:00 2001 From: Bogdan Userman Kikacheishvili Date: Wed, 1 Sep 2021 12:36:16 +0300 Subject: [PATCH] Added opportunity for customize secure symbol. --- Pod/PinCodeTextField.swift | 3 ++- Pod/TextHelper/TextHelper.swift | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Pod/PinCodeTextField.swift b/Pod/PinCodeTextField.swift index 06b2438..a17d620 100644 --- a/Pod/PinCodeTextField.swift +++ b/Pod/PinCodeTextField.swift @@ -40,6 +40,7 @@ import UIKit @IBInspectable public var placeholderColor: UIColor = UIColor.lightGray @IBInspectable public var underlineColor: UIColor = UIColor.darkGray @IBInspectable public var updatedUnderlineColor: UIColor = UIColor.clear + @IBInspectable public var secureSymbol: String = TextHelper.defaultSecureSymbol.description @IBInspectable public var secureText: Bool = false @IBInspectable public var needToUpdateUnderlines: Bool = true @IBInspectable public var characterBackgroundColor: UIColor = UIColor.clear @@ -196,7 +197,7 @@ import UIKit } private func updateLabels() { - let textHelper = TextHelper(text: text, placeholder: placeholderText, isSecure: isSecureTextEntry) + let textHelper = TextHelper(text: text, placeholder: placeholderText, isSecure: isSecureTextEntry, secureSymbol: self.secureSymbol) for label in labels { let index = labels.firstIndex(of: label) ?? 0 let currentCharacter = textHelper.character(atIndex: index) diff --git a/Pod/TextHelper/TextHelper.swift b/Pod/TextHelper/TextHelper.swift index f09b2a0..b1f0a70 100644 --- a/Pod/TextHelper/TextHelper.swift +++ b/Pod/TextHelper/TextHelper.swift @@ -9,14 +9,19 @@ import Foundation class TextHelper { + + static let defaultSecureSymbol: Character = "•" + let text: String? let placeholderText: String? let isSecureTextEntry: Bool + let secureSymbol: Character - init(text: String?, placeholder: String?, isSecure: Bool = false) { + init(text: String?, placeholder: String?, isSecure: Bool, secureSymbol: String) { self.text = text self.placeholderText = placeholder self.isSecureTextEntry = isSecure + self.secureSymbol = secureSymbol.first ?? TextHelper.defaultSecureSymbol } func character(atIndex i: Int) -> Character? { @@ -25,7 +30,7 @@ class TextHelper { let character: Character? if i < inputTextCount { let string = text ?? "" - character = isSecureTextEntry ? "•" : string[string.index(string.startIndex, offsetBy: i)] + character = isSecureTextEntry ? secureSymbol : string[string.index(string.startIndex, offsetBy: i)] } else if i < placeholderTextLength { let string = placeholderText ?? ""