setting up dropdown.
This commit is contained in:
parent
ebccc6bd28
commit
92b988d9fb
@ -9,7 +9,7 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
|
|
||||||
class DateDropdownEntryField: DropdownEntryField {
|
open class DateDropdownEntryField: DropdownEntryField {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -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.")
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user