setting values back to model
This commit is contained in:
parent
0defd2916a
commit
da097cc726
@ -76,6 +76,10 @@ import UIKit
|
||||
public var digitBoxes: [DigitBox] = []
|
||||
private var selectedDigitBox: DigitBox?
|
||||
|
||||
public var digitEntryModel: DigitEntryFieldModel? {
|
||||
return model as? DigitEntryFieldModel
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Computed Properties
|
||||
//--------------------------------------------------
|
||||
@ -234,6 +238,19 @@ import UIKit
|
||||
layoutIfNeeded()
|
||||
}
|
||||
|
||||
public override func reset() {
|
||||
super.reset()
|
||||
|
||||
accessibilityElements = nil
|
||||
switchFieldsAutomatically = false
|
||||
selectedDigitBox = nil
|
||||
text = ""
|
||||
digitBoxes.forEach {
|
||||
$0.removeFromSuperview()
|
||||
}
|
||||
digitBoxes = []
|
||||
}
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Methods
|
||||
//--------------------------------------------------
|
||||
@ -326,7 +343,7 @@ import UIKit
|
||||
}
|
||||
|
||||
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
|
||||
|
||||
|
||||
guard let model = model as? DigitEntryFieldModel else { return }
|
||||
|
||||
numberOfDigits = model.digits
|
||||
@ -378,12 +395,14 @@ extension DigitEntryField {
|
||||
|
||||
// One character, switch old value with new, select next textfield
|
||||
textField.text = string
|
||||
digitEntryModel?.text = text
|
||||
selectNextDigitField(textField, clear: false)
|
||||
return false
|
||||
|
||||
} else if replacementLength == 0 && oldLength == 1 {
|
||||
// Non empty cell, clear and stay.
|
||||
textField.text = ""
|
||||
digitEntryModel?.text = text
|
||||
return false
|
||||
}
|
||||
|
||||
@ -410,6 +429,7 @@ extension DigitEntryField {
|
||||
|
||||
if !switchFieldsAutomatically {
|
||||
textField.text = ""
|
||||
digitEntryModel?.text = text
|
||||
}
|
||||
|
||||
proprietorTextDelegate?.textFieldDidBeginEditing?(textField)
|
||||
|
||||
@ -60,6 +60,7 @@ import UIKit
|
||||
self.titleLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3
|
||||
self.feedbackLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3
|
||||
self.entryFieldContainer.isEnabled = enabled
|
||||
self.entryFieldModel?.enabled = enabled
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,6 +70,7 @@ import UIKit
|
||||
set (error) {
|
||||
self.feedback = error ? entryFieldModel?.errorMessage : entryFieldModel?.feedback
|
||||
self.entryFieldContainer.showError = error
|
||||
self.entryFieldModel?.showError = error
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,6 +79,7 @@ import UIKit
|
||||
get { return entryFieldContainer.isLocked }
|
||||
set (locked) {
|
||||
self.entryFieldContainer.isLocked = locked
|
||||
self.entryFieldModel?.locked = locked
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,6 +88,7 @@ import UIKit
|
||||
get { return entryFieldContainer.isSelected }
|
||||
set (selected) {
|
||||
self.entryFieldContainer.isSelected = selected
|
||||
self.entryFieldModel?.selected = selected
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -10,7 +10,6 @@ import Foundation
|
||||
|
||||
|
||||
@objcMembers public class EntryFieldModel: MoleculeModelProtocol, FormFieldProtocol, FormRuleWatcherFieldProtocol, EnableableModelProtocol {
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Properties
|
||||
//--------------------------------------------------
|
||||
@ -24,6 +23,7 @@ import Foundation
|
||||
public var feedback: String?
|
||||
public var errorMessage: String?
|
||||
public var enabled: Bool = true
|
||||
public var showError: Bool?
|
||||
public var locked: Bool?
|
||||
public var selected: Bool?
|
||||
public var text: String?
|
||||
@ -52,6 +52,7 @@ import Foundation
|
||||
case errorMessage
|
||||
case locked
|
||||
case selected
|
||||
case showError
|
||||
case text
|
||||
case fieldKey
|
||||
case groupName
|
||||
@ -94,6 +95,7 @@ import Foundation
|
||||
text = try typeContainer.decodeIfPresent(String.self, forKey: .text)
|
||||
baseValue = text
|
||||
fieldKey = try typeContainer.decodeIfPresent(String.self, forKey: .fieldKey)
|
||||
|
||||
if let groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName) {
|
||||
self.groupName = groupName
|
||||
}
|
||||
@ -107,6 +109,7 @@ import Foundation
|
||||
try container.encodeIfPresent(feedback, forKey: .feedback)
|
||||
try container.encodeIfPresent(text, forKey: .text)
|
||||
try container.encodeIfPresent(locked, forKey: .locked)
|
||||
try container.encodeIfPresent(showError, forKey: .showError)
|
||||
try container.encodeIfPresent(selected, forKey: .selected)
|
||||
try container.encodeIfPresent(errorMessage, forKey: .errorMessage)
|
||||
try container.encode(enabled, forKey: .enabled)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user