FUITextFieldFormCell
@IBDesignable
open class FUITextFieldFormCell : FUIInlineValidationTableViewCell, FUIPropertyFormCell
The reusable UI component implemented as an UITableViewCell
to display or edit a key-value pair property.
The developer should set the following properties on the cell, in their implementation of UITableViewDataSource
cellForRow(at:)
function:
keyName
: The key name of the property.value
: The value of the property.
And an onChangeHandler
:
onChangeHandler
: a handler closure, which is invoked on changes to the value
Optionally, the developer may provide
isEditable
: Indicates if the cell’s value may be modified. Defaults totrue
.
When the cell is editable, the key and value are arranged vertically in a stack, otherwise they are arranged horizontally.
Color settings:
Setting tintColor for add button for a state using setTintColor(_:for:) api. Currently disabled
and normal
are supported.
cell.setTintColor(UIColor.red, for: .normal)
Remark
Thefont-color
attribute will be overridden by tint-color-disabled
attribute when cell is switched to disabled
state. DO NOT set textColor
for valueTextView
when cell is in disabled
state! Use the setTintColor(UIColor(), for: .disabled)
to set the color.
The following is an example of usage in an application UITableViewController
:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(FUITextFieldFormCell.self, forCellReuseIdentifier: FUITextFieldFormCell.reuseIdentifier)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: FUITextFieldFormCell.reuseIdentifier, for: indexPath) as! FUITextFieldFormCell
cell.keyName = "Editable"
cell.value = myObject.productName
// MARK: implement onChangeHandler
cell.onChangeHandler = { newValue in
myObject.productName = newValue
}
return cell
}
## Theming
nuiClass
:
fdlFUITextFieldFormCell {}
Supported TEXT
class paths:
fdlFUITextFieldFormCell_keyLabel {}
fdlFUITextFieldFormCell_valueTextField {}
Supported TEXT
properties:
font-color: Color;
placeholder-color: Color;
font-style: UIFontTextStyle;
-
The default cell reuse identifier.
Declaration
Swift
open class var reuseIdentifier: String { get }
-
The value type is String.
Declaration
Swift
public typealias ValueType = String
-
The value of the property.
Declaration
Swift
@IBInspectable public var value: String { get set }
-
Method determining the type of presented keyboard
Declaration
Swift
public var keyboardType: UIKeyboardType { get set }
-
Implementation of change handler. Is invoked on changes to the
value
property.Declaration
Swift
public var onChangeHandler: ((String) -> Void)?
-
Indicates if the value of the cell could be changed or not. For
FUISimplePropertyFormCell
this property is always false.Declaration
Swift
public var isEditable: Bool { get set }
-
isEnabled
andisEditable
are in sync.Declaration
Swift
override public var isEnabled: Bool { get set }
-
The key name of the property.
Declaration
Swift
@IBInspectable public var keyName: String? { get set }
-
The
UILabel
holds the key name string.Declaration
Swift
@IBOutlet public private(set) weak var keyLabel: UILabel!
-
The
UITextField
holds the value string.Declaration
Swift
@IBOutlet public private(set) weak var valueTextField: UITextField!
-
If
isTrackingLiveChanges == true
, thenonChangeHandler
will be invoked for every letter entered. Otherwise,onChangeHandler
will be invoked only after user tapsDone
key, or the field resigns first responder.Defaults to
false
.Declaration
Swift
public var isTrackingLiveChanges: Bool
-
The placeholder text for the value text field.
Declaration
Swift
@IBInspectable public var placeholderText: String? { get set }
-
Undocumented
Declaration
Swift
open override func awakeFromNib()