diff --git a/MVMCoreUI/Atomic/Atoms/TextFields/TextViewEntryField.swift b/MVMCoreUI/Atomic/Atoms/TextFields/TextViewEntryField.swift index c39c12c6..b11181fa 100644 --- a/MVMCoreUI/Atomic/Atoms/TextFields/TextViewEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/TextFields/TextViewEntryField.swift @@ -16,13 +16,7 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele open private(set) var textView: TextView = { let textView = TextView() - textView.isAccessibilityElement = true textView.setContentCompressionResistancePriority(.required, for: .vertical) - textView.font = Styler.Font.RegularBodyLarge.getFont() - textView.textColor = .mvmBlack - textView.smartQuotesType = .no - textView.smartDashesType = .no - textView.smartInsertDeleteType = .no return textView }() @@ -103,9 +97,6 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele // MARK: - Delegate Properties //-------------------------------------------------- - /// Holds a reference to the delegating class so this class can internally influence the TextView behavior as well. - private weak var proprietorTextDelegate: UITextViewDelegate? - /// The delegate and block for validation. Validates if the text that the user has entered. public weak var observingTextViewDelegate: ObservingTextFieldDelegate? { didSet { @@ -127,10 +118,7 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele /// If you're using a ViewController, you must set this to it public weak var uiTextViewDelegate: UITextViewDelegate? { get { return textView.delegate } - set { - textView.delegate = self - proprietorTextDelegate = newValue - } + set { textView.delegate = newValue } } @objc public func setBothTextDelegates(to delegate: (UITextViewDelegate & ObservingTextFieldDelegate)?) { @@ -160,10 +148,14 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele ]) heightConstraint = textView.heightAnchor.constraint(equalToConstant: 0) - accessibilityElements = [titleLabel, textView, feedbackLabel] } + open override func updateView(_ size: CGFloat) { + super.updateView(size) + textView.updateView(size) + } + open override func reset() { super.reset() @@ -199,52 +191,8 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele /// Executes on UITextView.textDidEndEditingNotification @objc func endInputing() { resignFirstResponder() - showError = !isValid - } - - //-------------------------------------------------- - // MARK: - UITextViewDelegate - //-------------------------------------------------- - - @objc public func textViewShouldBeginEditing(_ textView: UITextView) -> Bool { - - return proprietorTextDelegate?.textViewShouldBeginEditing?(textView) ?? true - } - - @objc public func textViewDidBeginEditing(_ textView: UITextView) { - - isSelected = true - proprietorTextDelegate?.textViewDidBeginEditing?(textView) - } - - @objc public func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { - - return proprietorTextDelegate?.textView?(textView, shouldChangeTextIn: range, replacementText: text) ?? true - } - - @objc public func textViewDidChange(_ textView: UITextView) { - - validateTextView() - proprietorTextDelegate?.textViewDidChange?(textView) - } - - @objc public func textViewShouldEndEditing(_ textView: UITextView) -> Bool { - - return proprietorTextDelegate?.textViewShouldEndEditing?(textView) ?? true - } - - @objc public func textViewDidEndEditing(_ textView: UITextView) { - isSelected = false - - if isValid { - showError = false - entryFieldContainer.bottomBar?.backgroundColor = UIColor.mvmBlack.cgColor - } else { - showError = true - } - - proprietorTextDelegate?.textViewDidEndEditing?(textView) + showError = !isValid } //-------------------------------------------------- @@ -291,6 +239,7 @@ class TextViewEntryField: EntryField, UITextViewDelegate, ObservingTextFieldDele default: break } + /// No point in configuring if the TextView is Read-only. if textView.isEditable { FormValidator.setupValidation(for: model, delegate: delegateObject?.formHolderDelegate) setupTextViewToolbar() diff --git a/MVMCoreUI/BaseClasses/TextView.swift b/MVMCoreUI/BaseClasses/TextView.swift index 3202650d..31288d87 100644 --- a/MVMCoreUI/BaseClasses/TextView.swift +++ b/MVMCoreUI/BaseClasses/TextView.swift @@ -76,7 +76,9 @@ import UIKit } } - open func updateView(_ size: CGFloat) { } + open func updateView(_ size: CGFloat) { + font = fontStyle.getFont() + } /// Will be called only once. open func setupView() {