Skip to content

Commit 3d01b05

Browse files
committed
Minor improvement
1 parent b439cad commit 3d01b05

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

SwiftyCodeView.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Pod::Spec.new do |s|
1010
s.swift_version = '5.0'
1111
s.name = 'SwiftyCodeView'
12-
s.version = '0.3.4'
12+
s.version = '0.3.5'
1313
s.summary = 'An UI Component for verification codes written in swift'
1414

1515
s.description = <<-DESC

SwiftyCodeView/Classes/SwiftyCodeView/SwiftyCodeView.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import UIKit
88

99
@objc
1010
public protocol SwiftyCodeViewDelegate: class {
11-
func codeView(sender: SwiftyCodeView, didFinishInput code: String)
11+
func codeView(sender: SwiftyCodeView, didFinishInput code: String) -> Bool
1212
}
1313

1414
@IBDesignable
@@ -42,6 +42,9 @@ open class SwiftyCodeView: UIControl {
4242
let item = stackView.arrangedSubviews[i] as! SwiftyCodeItemView
4343
item.textField.text = i < array.count ? array[i] : ""
4444
}
45+
if !stackView.arrangedSubviews.compactMap({$0 as? UITextField}).filter({$0.isFirstResponder}).isEmpty {
46+
self.becomeFirstResponder()
47+
}
4548
}
4649
}
4750

@@ -81,12 +84,14 @@ open class SwiftyCodeView: UIControl {
8184
.last as! SwiftyCodeItemView
8285
}
8386

87+
@discardableResult
8488
override open func becomeFirstResponder() -> Bool {
8589
let items = stackView.arrangedSubviews
8690
.map({$0 as! SwiftyCodeItemView})
8791
return (items.filter({($0.textField.text ?? "").isEmpty}).first ?? items.last)!.becomeFirstResponder()
8892
}
8993

94+
@discardableResult
9095
override open func resignFirstResponder() -> Bool {
9196
stackView.arrangedSubviews.forEach({$0.resignFirstResponder()})
9297
return true
@@ -112,8 +117,9 @@ extension SwiftyCodeView: UITextFieldDelegate, SwiftyCodeTextFieldDelegate {
112117
item.textField.text = string
113118
sendActions(for: .valueChanged)
114119
if index == length - 1 { //is last textfield
115-
delegate?.codeView(sender: self, didFinishInput: self.code)
116-
textField.resignFirstResponder()
120+
if (delegate?.codeView(sender: self, didFinishInput: self.code) ?? false) {
121+
textField.resignFirstResponder()
122+
}
117123
return false
118124
}
119125

0 commit comments

Comments
 (0)