broadening scope of toolbar func. improving MDN entryfield selection behavior.

This commit is contained in:
Kevin G Christiano 2020-04-14 10:29:49 -04:00
parent a4ede52810
commit e03a4abbd5
8 changed files with 28 additions and 15 deletions

View File

@ -102,7 +102,7 @@ import UIKit
}
}
@objc override func dismissFieldInput(_ sender: Any?) {
@objc public override func dismissFieldInput(_ sender: Any?) {
setTextWith(date: datePicker?.date)
super.dismissFieldInput(sender)

View File

@ -211,7 +211,7 @@ import UIKit
let digitBox = DigitBox()
digitBox.isAccessibilityElement = true
digitBox.digitField.inputAccessoryView = MVMCoreUICommonViewsUtility.getToolbarWithDoneButton(delegate: self)
digitBox.digitField.inputAccessoryView = UIToolbar.getToolbarWithDoneButton(delegate: self, action: #selector(dismissFieldInput))
digitBox.digitField.delegate = self
digitBox.digitBoxDelegate = self
return digitBox
@ -313,7 +313,7 @@ import UIKit
return true
}
@objc override func dismissFieldInput(_ sender: Any?) {
@objc public override func dismissFieldInput(_ sender: Any?) {
digitBoxes.forEach {
if $0.isSelected {

View File

@ -48,6 +48,18 @@ import MVMCore
set { text = MVMCoreUIUtility.formatMdn(newValue) }
}
/// Toggles selected or original (unselected) UI.
public override var isSelected: Bool {
get { return entryFieldContainer.isSelected }
set (selected) {
if selected && showError {
showError = false
}
super.isSelected = selected
}
}
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
@ -81,7 +93,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(dismissFieldInput(_:)))
let dismissButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissFieldInput))
toolbar.items = [contacts, space, dismissButton]
textField.inputAccessoryView = toolbar
}

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 dismissFieldInput(sender: Any?)
@objc optional func dismissFieldInput(_ sender: Any?)
}
@ -227,7 +227,7 @@ import UIKit
textFieldTrailingConstraint?.isActive = true
textField.addTarget(self, action: #selector(startEditing), for: .editingDidBegin)
textField.addTarget(self, action: #selector(dismissFieldInput(_:)), for: .editingDidEnd)
textField.addTarget(self, action: #selector(dismissFieldInput), for: .editingDidEnd)
let tap = UITapGestureRecognizer(target: self, action: #selector(startEditing))
entryFieldContainer.addGestureRecognizer(tap)
@ -312,7 +312,7 @@ import UIKit
}
}
@objc func dismissFieldInput(_ sender: Any?) {
@objc public func dismissFieldInput(_ sender: Any?) {
resignFirstResponder()
}
@ -358,7 +358,8 @@ import UIKit
uiTextFieldDelegate = delegateObject?.uiTextFieldDelegate
observingTextFieldDelegate = delegateObject?.observingTextFieldDelegate
textField.inputAccessoryView = MVMCoreUICommonViewsUtility.getToolbarWithDoneButton(delegate: observingTextFieldDelegate ?? self)
textField.inputAccessoryView = UIToolbar.getToolbarWithDoneButton(delegate: observingTextFieldDelegate ?? self,
action: #selector(observingTextFieldDelegate?.dismissFieldInput))
}
}

View File

@ -8,7 +8,7 @@
import Foundation
/*
public extension UIToolbar {
class func makeEmptyToolbar() -> UIToolbar {
@ -22,15 +22,15 @@ public extension UIToolbar {
return toolbar
}
class func getToolbarWithDoneButton(delegate: ObservingTextFieldDelegate) -> UIToolbar {
class func getToolbarWithDoneButton(delegate: Any?, action: Selector) -> UIToolbar {
let toolbar = makeEmptyToolbar()
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let button = UIBarButtonItem(barButtonSystemItem: .done, target: delegate, action: #selector(ObservingTextFieldDelegate.dismissFieldInput))
let button = UIBarButtonItem(barButtonSystemItem: .done, target: delegate, action: action)
button.tintColor = .mvmBlack
toolbar.setItems([space, button], animated: false)
return toolbar
}
}
*/

View File

@ -36,7 +36,7 @@ open class ScrollingViewController: ViewController {
super.viewDidLoad()
// Adds the tap gesture to dismiss the keyboard.
dismissKeyboardTapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissFieldInput(sender:)))
dismissKeyboardTapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissFieldInput))
view.addGestureRecognizer(dismissKeyboardTapGesture!)
dismissKeyboardTapGesture?.isEnabled = false
scrollView.alwaysBounceVertical = false

View File

@ -399,7 +399,7 @@ import UIKit
}
}
@objc open func dismissFieldInput(sender: Any?) {
@objc open func dismissFieldInput(_ sender: Any?) {
selectedField?.resignFirstResponder()
}

View File

@ -14,7 +14,7 @@ public extension MVMCoreUICommonViewsUtility {
let toolbar = self.makeEmptyToolbar()
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let button = UIBarButtonItem(barButtonSystemItem: .done, target: delegate, action: #selector(ObservingTextFieldDelegate.dismissFieldInput(sender:)))
let button = UIBarButtonItem(barButtonSystemItem: .done, target: delegate, action: #selector(ObservingTextFieldDelegate.dismissFieldInput))
button.tintColor = .black
toolbar.setItems([space, button], animated: false)