Adjusted validation logic.

This commit is contained in:
Kevin G Christiano 2019-12-16 08:53:45 -05:00
parent 44ff5e9d3c
commit bcddc0b311
7 changed files with 32 additions and 31 deletions

View File

@ -72,7 +72,7 @@ import UIKit
}
}
// MARK: - Molecular
// MARK: - MVMCoreUIMoleculeViewProtocol
extension BaseDropdownEntryField {
@objc override open func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {

View File

@ -96,6 +96,7 @@ import UIKit
}
@objc override func dismissFieldInput(_ sender: Any?) {
setTextWith(date: datePicker?.date)
super.dismissFieldInput(sender)
}
@ -106,7 +107,7 @@ import UIKit
}
}
// MARK: - Molecular
// MARK: - MVMCoreUIMoleculeViewProtocol
extension DateDropdownEntryField {
@objc override open func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {

View File

@ -79,7 +79,6 @@ import UIKit
@objc public override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
@objc public convenience init() {
@ -95,7 +94,8 @@ import UIKit
// MARK: - Lifecycle
//--------------------------------------------------
@objc private func setup() {
open override func setupView() {
super.setupView()
guard constraints.isEmpty else { return }

View File

@ -31,7 +31,6 @@ import UIKit
public override var isEnabled: Bool {
get { return super.isEnabled }
set (enabled) {
titleLabel.textColor = enabled ? .mfBattleshipGrey() : .mfSilver()
digitBoxes.forEach { $0.isEnabled = enabled }
super.isEnabled = enabled
}
@ -72,15 +71,11 @@ import UIKit
// If there is already text in the textfield, set the placeholder label below.
if let text = text, !text.isEmpty && !showError {
feedback = placeholder
} else if !showError {
feedback = ""
}
/*
* adding missing accessibilityLabel value
* if we have some value in accessibilityLabel,
* then only can append regular and picker item
*/
textField.accessibilityLabel = newValue + (MVMCoreUIUtility.hardcodedString(withKey: "mfdigittextfield_regular") ?? "")
}
}
@ -101,8 +96,6 @@ import UIKit
field.digitField.text = String(newValue[indexChar])
}
}
valueChanged()
}
}
@ -128,9 +121,6 @@ import UIKit
@objc public override init(frame: CGRect) {
super.init(frame: frame)
isAccessibilityElement = false
entryFieldContainer.disableAllBorders = true
}
@objc public convenience init() {
@ -156,7 +146,11 @@ import UIKit
// MARK: - Setup
//--------------------------------------------------
@objc public override func setupFieldContainerContent(_ container: UIView) {}
@objc public override func setupFieldContainerContent(_ container: UIView) {
isAccessibilityElement = false
entryFieldContainer.disableAllBorders = true
}
@objc private func createDigitField() -> DigitBox {
@ -304,7 +298,6 @@ import UIKit
} else {
selectNextField = true
}
} else if selectNextField {
if !clear {
switchFieldsAutomatically = true
@ -325,8 +318,12 @@ import UIKit
@objc override open func resignFirstResponder() -> Bool {
selectedDigitBox?.digitField.resignFirstResponder()
if validateWhenDoneEditing {
validateTextField()
}
selectedDigitBox?.isSelected = false
selectedDigitBox?.digitField.resignFirstResponder()
return true
}
@ -369,14 +366,12 @@ extension DigitEntryField {
// One character, switch old value with new, select next textfield
textField.text = string
valueChanged()
selectNextDigitField(textField, clear: false)
return false
} else if replacementLength == 0 && oldLength == 1 {
// Non empty cell, clear and stay.
textField.text = ""
valueChanged()
return false
}
@ -388,7 +383,7 @@ extension DigitEntryField {
@objc func digitFieldDidDelete(_ textField: TextField?) {
selectPreviousDigitField(textField, clear: true)
selectPreviousDigitField(textField, clear: false)
}
@objc public func textFieldDidBeginEditing(_ textField: UITextField) {
@ -403,7 +398,6 @@ extension DigitEntryField {
if !switchFieldsAutomatically {
textField.text = ""
valueChanged()
}
proprietorTextDelegate?.textFieldDidBeginEditing?(textField)
@ -415,12 +409,16 @@ extension DigitEntryField {
selectedDigitBox?.isSelected = false
selectedDigitBox = nil
if !switchFieldsAutomatically && validateWhenDoneEditing {
validateTextField()
}
proprietorTextDelegate?.textFieldDidEndEditing?(textField)
}
@objc public func textFieldShouldClear(_ textField: UITextField) -> Bool {
selectPreviousDigitField(textField, clear: false)
selectPreviousDigitField(textField, clear: true)
return proprietorTextDelegate?.textFieldShouldClear?(textField) ?? true
}
@ -436,7 +434,7 @@ extension DigitEntryField {
}
}
// MARK: - Molecular
// MARK: - MVMCoreUIMoleculeViewProtocol
extension DigitEntryField {
@objc open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {

View File

@ -34,7 +34,6 @@ open class ItemDropdownEntryField: BaseDropdownEntryField {
@objc public override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
@objc public convenience init() {
@ -53,8 +52,9 @@ open class ItemDropdownEntryField: BaseDropdownEntryField {
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
@objc private func setup() {
@objc open override func setupFieldContainerContent(_ container: UIView) {
super.setupFieldContainerContent(container)
pickerView = MVMCoreUICommonViewsUtility.addPicker(to: textField, delegate: self)
textField.hideBlinkingCaret = true
@ -115,7 +115,7 @@ extension ItemDropdownEntryField: UIPickerViewDelegate, UIPickerViewDataSource {
}
}
// MARK: - Molecular
// MARK: - MVMCoreUIMoleculeViewProtocol
extension ItemDropdownEntryField {
@objc override open func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {

View File

@ -147,7 +147,7 @@ import MVMCore
}
text = unformattedMDN
_ = textFieldShouldReturn(textField)
textFieldShouldReturn(textField)
textFieldDidEndEditing(textField)
}
}
@ -156,6 +156,7 @@ import MVMCore
// MARK: - Implemented TextField Delegate
//--------------------------------------------------
@discardableResult
@objc public func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()

View File

@ -228,7 +228,8 @@ import UIKit
showError = true
observingTextFieldDelegate?.isInvalid?(textfield: self)
} else if isValid {
} else {
showError = false
observingTextFieldDelegate?.isValid?(textfield: self)
}
@ -242,7 +243,7 @@ import UIKit
textField.becomeFirstResponder()
}
/// Executes on UITextField.textDidChangeNotification (every character entry)
/// Executes on UITextField.textDidChangeNotification (each character entry)
@objc func valueChanged() {
guard validateEachCharacter else { return }