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
class DateDropdownEntryField: DropdownEntryField {
open class DateDropdownEntryField: DropdownEntryField {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------

View File

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

View File

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

View File

@ -9,13 +9,13 @@
import UIKit
class ItemDropdownEntryField: DropdownEntryField {
open class ItemDropdownEntryField: DropdownEntryField {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
var pickerData: [String] = []
var pickerView: UIPickerView?
public var pickerData: [String] = []
public var pickerView: UIPickerView?
//--------------------------------------------------
// MARK: - Initializer
@ -28,8 +28,19 @@ class ItemDropdownEntryField: DropdownEntryField {
public convenience init(pickerData: [String]) {
self.init(frame: .zero)
self.pickerData = pickerData
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

View File

@ -83,7 +83,7 @@ import MVMCore
let toolbar = MVMCoreUICommonViewsUtility.makeEmptyToolbar()
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 dismissButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissField(_:)))
let dismissButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissFieldInput(_:)))
toolbar.items = [contacts, space, dismissButton]
textField.inputAccessoryView = toolbar
}
@ -112,6 +112,7 @@ import MVMCore
clearErrorState()
} else {
errorMessage = errorMessage ?? MVMCoreUIUtility.hardcodedString(withKey: "textfield_phone_format_error_message")
showError = true
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
@objc optional func isInvalid(textfield: TextEntryField?)
/// Dismisses the keyboard.
@objc optional func dismissField(sender: Any?)
@objc optional func dismissFieldInput(sender: Any?)
}
@ -182,7 +182,7 @@ import UIKit
textField.accessibilityValue = nil
feedback = nil
entryContainer.originalUI()
showError = false
}
public func setBothTextDelegates(to delegate: (UITextFieldDelegate & ObservingTextFieldDelegate)?) {
@ -204,7 +204,7 @@ import UIKit
return true
}
@objc func dismissField(_ sender: Any?) {
@objc func dismissFieldInput(_ sender: Any?) {
_ = self.resignFirstResponder()
}