setting up dropdown.

This commit is contained in:
Kevin G Christiano 2019-11-15 08:52:29 -05:00
parent ebccc6bd28
commit 92b988d9fb
6 changed files with 25 additions and 14 deletions

View File

@ -9,7 +9,7 @@
import UIKit import UIKit
class DateDropdownEntryField: DropdownEntryField { open class DateDropdownEntryField: DropdownEntryField {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
//-------------------------------------------------- //--------------------------------------------------

View File

@ -8,7 +8,10 @@
import UIKit import UIKit
/**
This class is intended to be subclassed.
See ItemDropdownEntryField and DateDropdownEntryField.
*/
@objcMembers open class DropdownEntryField: TextEntryField { @objcMembers open class DropdownEntryField: TextEntryField {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Outlets // MARK: - Outlets
@ -42,10 +45,6 @@ import UIKit
super.init(frame: frame) super.init(frame: frame)
} }
public convenience init() {
self.init(frame: .zero)
}
required public init?(coder: NSCoder) { required public init?(coder: NSCoder) {
super.init(coder: coder) super.init(coder: coder)
fatalError("DropdownEntryField does not support xib.") fatalError("DropdownEntryField does not support xib.")

View File

@ -68,7 +68,7 @@ import UIKit
guard let self = self else { return } guard let self = self else { return }
self.entryContainer.showError = self.showError self.entryContainer.showError = self.showError
self.feedback = self.errorMessage self.feedback = self.showError ? self.errorMessage : nil
} }
} }
} }

View File

@ -9,13 +9,13 @@
import UIKit import UIKit
class ItemDropdownEntryField: DropdownEntryField { open class ItemDropdownEntryField: DropdownEntryField {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
//-------------------------------------------------- //--------------------------------------------------
var pickerData: [String] = [] public var pickerData: [String] = []
var pickerView: UIPickerView? public var pickerView: UIPickerView?
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Initializer // MARK: - Initializer
@ -28,8 +28,19 @@ class ItemDropdownEntryField: DropdownEntryField {
public convenience init(pickerData: [String]) { public convenience init(pickerData: [String]) {
self.init(frame: .zero) self.init(frame: .zero)
self.pickerData = pickerData
pickerView = MVMCoreUICommonViewsUtility.addPicker(to: textField, delegate: self) pickerView = MVMCoreUICommonViewsUtility.addPicker(to: textField, delegate: self)
} }
//--------------------------------------------------
// MARK: - Methods
//--------------------------------------------------
public func setPickerDelegate(delegate: UIPickerViewDelegate & UIPickerViewDataSource) {
pickerView?.delegate = delegate
pickerView?.dataSource = delegate
}
} }
// MARK:- Base Picker Delegate // MARK:- Base Picker Delegate

View File

@ -83,7 +83,7 @@ import MVMCore
let toolbar = MVMCoreUICommonViewsUtility.makeEmptyToolbar() let toolbar = MVMCoreUICommonViewsUtility.makeEmptyToolbar()
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let contacts = UIBarButtonItem(title: MVMCoreUIUtility.hardcodedString(withKey: "textfield_contacts_barbutton"), style: .plain, target: self, action: #selector(getContacts(_:))) let contacts = UIBarButtonItem(title: MVMCoreUIUtility.hardcodedString(withKey: "textfield_contacts_barbutton"), style: .plain, target: self, action: #selector(getContacts(_:)))
let dismissButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissField(_:))) let dismissButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissFieldInput(_:)))
toolbar.items = [contacts, space, dismissButton] toolbar.items = [contacts, space, dismissButton]
textField.inputAccessoryView = toolbar textField.inputAccessoryView = toolbar
} }
@ -112,6 +112,7 @@ import MVMCore
clearErrorState() clearErrorState()
} else { } else {
errorMessage = errorMessage ?? MVMCoreUIUtility.hardcodedString(withKey: "textfield_phone_format_error_message") errorMessage = errorMessage ?? MVMCoreUIUtility.hardcodedString(withKey: "textfield_phone_format_error_message")
showError = true
UIAccessibility.post(notification: .layoutChanged, argument: textField) UIAccessibility.post(notification: .layoutChanged, argument: textField)
} }

View File

@ -15,7 +15,7 @@ import UIKit
/// Called when the entered text becomes invalid based on the validation block /// Called when the entered text becomes invalid based on the validation block
@objc optional func isInvalid(textfield: TextEntryField?) @objc optional func isInvalid(textfield: TextEntryField?)
/// Dismisses the keyboard. /// Dismisses the keyboard.
@objc optional func dismissField(sender: Any?) @objc optional func dismissFieldInput(sender: Any?)
} }
@ -182,7 +182,7 @@ import UIKit
textField.accessibilityValue = nil textField.accessibilityValue = nil
feedback = nil feedback = nil
entryContainer.originalUI() showError = false
} }
public func setBothTextDelegates(to delegate: (UITextFieldDelegate & ObservingTextFieldDelegate)?) { public func setBothTextDelegates(to delegate: (UITextFieldDelegate & ObservingTextFieldDelegate)?) {
@ -204,7 +204,7 @@ import UIKit
return true return true
} }
@objc func dismissField(_ sender: Any?) { @objc func dismissFieldInput(_ sender: Any?) {
_ = self.resignFirstResponder() _ = self.resignFirstResponder()
} }