@@ -15,31 +15,31 @@ protocol KWTextFieldDelegate: class {
1515}
1616
1717@IBDesignable class KWTextFieldView : UIView {
18-
18+
1919 // MARK: - Constants
2020 static let maxCharactersLength = 1
21-
21+
2222 // MARK: - IBInspectables
2323 @IBInspectable var underlineColor : UIColor = UIColor . darkGray {
2424 didSet {
2525 underlineView. backgroundColor = underlineColor
2626 }
2727 }
28-
28+
2929 @IBInspectable var underlineSelectedColor : UIColor = UIColor . black
30-
30+
3131 @IBInspectable var textColor : UIColor = UIColor . darkText {
3232 didSet {
3333 numberTextField. textColor = textColor
3434 }
3535 }
36-
36+
3737 @IBInspectable var textSize : CGFloat = 24.0 {
3838 didSet {
3939 numberTextField. font = UIFont . systemFont ( ofSize: textSize)
4040 }
4141 }
42-
42+
4343 @IBInspectable var textFont : String = " " {
4444 didSet {
4545 if let font = UIFont ( name: textFont, size: textSize) {
@@ -49,77 +49,82 @@ protocol KWTextFieldDelegate: class {
4949 }
5050 }
5151 }
52-
52+
5353 @IBInspectable var textFieldBackgroundColor : UIColor = UIColor . clear {
5454 didSet {
5555 numberTextField. backgroundColor = textFieldBackgroundColor
5656 }
5757 }
58-
58+
5959 @IBInspectable var textFieldTintColor : UIColor = UIColor . blue {
6060 didSet {
6161 numberTextField. tintColor = textFieldTintColor
6262 }
6363 }
64-
64+
6565 @IBInspectable var darkKeyboard : Bool = false {
6666 didSet {
6767 keyboardAppearance = darkKeyboard ? . dark : . light
6868 numberTextField. keyboardAppearance = keyboardAppearance
6969 }
7070 }
71-
71+
7272 // MARK: - IBOutlets
7373 @IBOutlet weak var numberTextField : UITextField !
7474 @IBOutlet weak private var underlineView : UIView !
75-
75+
7676 // MARK: - Variables
7777 private var keyboardAppearance = UIKeyboardAppearance . default
7878 weak var delegate : KWTextFieldDelegate ?
79-
79+
8080 // MARK: - Lifecycle
8181 override init ( frame: CGRect ) {
8282 super. init ( frame: frame)
83-
84- loadViewFromNib ( )
83+
84+ setup ( )
8585 }
86-
86+
8787 required public init ? ( coder aDecoder: NSCoder ) {
8888 super. init ( coder: aDecoder)
89-
90- loadViewFromNib ( )
91- numberTextField. delegate = self
92- NotificationCenter . default. addObserver ( self , selector: #selector( textFieldDidChange ( _: ) ) , name: NSNotification . Name. UITextFieldTextDidChange, object: numberTextField)
89+
90+ setup ( )
9391 }
94-
92+
9593 deinit {
9694 NotificationCenter . default. removeObserver ( self )
9795 }
98-
96+
97+ // MARK: - Private Methods
98+ private func setup( ) {
99+ loadViewFromNib ( )
100+ numberTextField. delegate = self
101+ NotificationCenter . default. addObserver ( self , selector: #selector( textFieldDidChange ( _: ) ) , name: NSNotification . Name. UITextFieldTextDidChange, object: numberTextField)
102+ }
103+
99104 // MARK: - Public Methods
100105 public func activate( ) {
101106 numberTextField. becomeFirstResponder ( )
102- if numberTextField. text? . characters . count == 0 {
107+ if numberTextField. text? . count == 0 {
103108 numberTextField. text = " "
104109 }
105110 }
106-
111+
107112 public func deactivate( ) {
108113 numberTextField. resignFirstResponder ( )
109114 }
110-
115+
111116 public func reset( ) {
112117 numberTextField. text = " "
113118 updateUnderline ( )
114119 }
115-
120+
116121 // MARK: - FilePrivate Methods
117122 dynamic fileprivate func textFieldDidChange( _ notification: Foundation . Notification ) {
118- if numberTextField. text? . characters . count == 0 {
123+ if numberTextField. text? . count == 0 {
119124 numberTextField. text = " "
120125 }
121126 }
122-
127+
123128 fileprivate func updateUnderline( ) {
124129 underlineView. backgroundColor = numberTextField. text? . trim ( ) != " " ? underlineSelectedColor : underlineColor
125130 }
@@ -130,18 +135,18 @@ extension KWTextFieldView: UITextFieldDelegate {
130135 public func textField( _ textField: UITextField , shouldChangeCharactersIn range: NSRange , replacementString string: String ) -> Bool {
131136 let currentString = numberTextField. text!
132137 let newString = currentString. replacingCharacters ( in: textField. text!. range ( from: range) !, with: string)
133-
134- if newString. characters . count > type ( of: self ) . maxCharactersLength {
138+
139+ if newString. count > type ( of: self ) . maxCharactersLength {
135140 delegate? . moveToNext ( self )
136141 textField. text = string
137- } else if newString. characters . count == 0 {
142+ } else if newString. count == 0 {
138143 delegate? . moveToPrevious ( self , oldCode: textField. text!)
139144 numberTextField. text = " "
140145 }
141-
146+
142147 delegate? . didChangeCharacters ( )
143148 updateUnderline ( )
144-
145- return newString. characters . count <= type ( of: self ) . maxCharactersLength
149+
150+ return newString. count <= type ( of: self ) . maxCharactersLength
146151 }
147152}
0 commit comments