From 6b3bcbea6af60eaea6952f9b6a4b33f85be8bc8a Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Tue, 16 Feb 2021 17:27:35 -0500 Subject: [PATCH] asd --- .../MultiItemDropdownEntryFieldModel.swift | 12 +++ .../FormFields/TextFields/EntryField.swift | 76 ++++++++++++++----- 2 files changed, 71 insertions(+), 17 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift index fbdde6f3..1dea0b0d 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift @@ -39,6 +39,18 @@ import Foundation return delimiters[index] } + /* + public func delimiter(for index: Int) -> String { + + guard index != components.count - 1 else { return "" } + guard let delimiters = delimiters, + index < delimiters.count + else { return " " } + + return delimiters[index] + } + */ + /// A string of the picker row concatenated by whitespace or delimiters if provided. public var selectedRowText: String { diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/EntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/EntryField.swift index 3996c7fc..b9b60847 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/EntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/EntryField.swift @@ -52,6 +52,8 @@ import UIKit /// Validate on each entry in the textField. Default: true public var validateEachCharacter: Bool = true +// private var observation: NSKeyValueObservation? = nil + //-------------------------------------------------- // MARK: - Computed Properties //-------------------------------------------------- @@ -60,10 +62,10 @@ import UIKit public var isEnabled: Bool { get { entryFieldContainer.isEnabled } set (enabled) { - self.titleLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3 - self.feedbackLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3 - self.entryFieldContainer.isEnabled = enabled - self.entryFieldModel?.enabled = enabled + titleLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3 + feedbackLabel.textColor = enabled ? .mvmBlack : .mvmCoolGray3 + entryFieldContainer.isEnabled = enabled + entryFieldModel?.enabled = enabled } } @@ -71,10 +73,10 @@ import UIKit public var showError: Bool { get { entryFieldContainer.showError } set (error) { - self.feedback = error ? errorMessage : entryFieldModel?.feedback - self.feedbackLabel.textColor = error ? entryFieldModel?.errorTextColor?.uiColor ?? .mvmBlack : .mvmBlack - self.entryFieldContainer.showError = error - self.entryFieldModel?.showError = error + feedback = error ? errorMessage : entryFieldModel?.feedback + feedbackLabel.textColor = error ? entryFieldModel?.errorTextColor?.uiColor ?? .mvmBlack : .mvmBlack + entryFieldContainer.showError = error + entryFieldModel?.showError = error } } @@ -86,8 +88,8 @@ import UIKit public var isLocked: Bool { get { entryFieldContainer.isLocked } set (locked) { - self.entryFieldContainer.isLocked = locked - self.entryFieldModel?.locked = locked + entryFieldContainer.isLocked = locked + entryFieldModel?.locked = locked } } @@ -95,17 +97,17 @@ import UIKit public var isSelected: Bool { get { entryFieldContainer.isSelected } set (selected) { - self.entryFieldContainer.isSelected = selected - self.entryFieldModel?.selected = selected + entryFieldContainer.isSelected = selected + entryFieldModel?.selected = selected } } /// Sets the text of titleLabel public var title: String? { get { titleLabel.text } - set (newText) { - titleLabel.text = newText - setAccessibilityString(newText) + set { + titleLabel.text = newValue + setAccessibilityString(newValue) } } @@ -118,8 +120,8 @@ import UIKit /// Sets feedback text in the textField. public var feedback: String? { get { feedbackLabel.text } - set (newFeedback) { - feedbackLabel.text = newFeedback + set { + feedbackLabel.text = newValue feedbackLabel.accessibilityElementsHidden = feedbackLabel.text?.isEmpty ?? true entryFieldContainer.refreshUI(updateMoleculeLayout: true) } @@ -217,6 +219,46 @@ import UIKit layoutMarginsGuide.bottomAnchor.constraint(equalTo: feedbackLabel.bottomAnchor).isActive = true } + /* + isAccessibilityElement = false + setContentCompressionResistancePriority(.required, for: .vertical) + accessibilityElements = [titleLabel, feedbackLabel] + backgroundColor = .mvmWhite + +// observation = observe(\.feedbackLabel.text, options: [.new]) { [weak self] _, _ in +// self?.entryFieldContainer.refreshUI(updateMoleculeLayout: true) +// } + + addSubview(titleLabel) + addSubview(entryFieldContainer) + addSubview(feedbackLabel) + + + titleLabelLeading = titleLabel.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor) + titleLabelTrailing = layoutMarginsGuide.trailingAnchor.constraint(equalTo: titleLabel.trailingAnchor) + titleContainerDistance = entryFieldContainer.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: Padding.One) + entryFieldContainerLeading = entryFieldContainer.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor) + feedbackContainerDistance = feedbackLabel.topAnchor.constraint(equalTo: entryFieldContainer.bottomAnchor, constant: Padding.Two) + entryFieldContainerTrailing = layoutMarginsGuide.trailingAnchor.constraint(equalTo: entryFieldContainer.trailingAnchor) + feedbackLabelLeading = feedbackLabel.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor) + feedbackLabelTrailing = layoutMarginsGuide.trailingAnchor.constraint(equalTo: feedbackLabel.trailingAnchor) + + NSLayoutConstraint.activate([ + titleLabel.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor), + titleLabelLeading!, + titleLabelLeading!, + titleContainerDistance!, + entryFieldContainerLeading!, + entryFieldContainerTrailing!, + feedbackContainerDistance!, + feedbackLabelLeading!, + feedbackLabelTrailing!, + layoutMarginsGuide.bottomAnchor.constraint(equalTo: feedbackLabel.bottomAnchor) + ]) + + entryFieldContainer.setContentCompressionResistancePriority(.required, for: .vertical) + setupFieldContainerContent(entryFieldContainer) + */ @objc open override func layoutSubviews() { super.layoutSubviews()