diff --git a/VDS/Classes/Control.swift b/VDS/Classes/Control.swift index 745aa6b4..c0d3dcc8 100644 --- a/VDS/Classes/Control.swift +++ b/VDS/Classes/Control.swift @@ -28,7 +28,22 @@ open class Control: UIControl, ModelHandlerable, ViewProto open var surface: Surface @Proxy(\.model.disabled) - open var disabled: Bool + open var disabled: Bool { + didSet { + self.isEnabled = !disabled + } + } + + open override var isEnabled: Bool { + get { !model.disabled } + set { + //create local vars for clear coding + let disabled = !newValue + if model.disabled != disabled { + model.disabled = disabled + } + } + } //-------------------------------------------------- // MARK: - Initializers diff --git a/VDS/Classes/View.swift b/VDS/Classes/View.swift index 7b062db4..6878ba12 100644 --- a/VDS/Classes/View.swift +++ b/VDS/Classes/View.swift @@ -28,8 +28,23 @@ open class View: UIView, ModelHandlerable, ViewProtocol, R open var surface: Surface @Proxy(\.model.disabled) - open var disabled: Bool - + open var disabled: Bool { + didSet { + self.isEnabled = !disabled + } + } + + open var isEnabled: Bool { + get { !model.disabled } + set { + //create local vars for clear coding + let disabled = !newValue + if model.disabled != disabled { + model.disabled = disabled + } + } + } + //-------------------------------------------------- // MARK: - Initializers //-------------------------------------------------- diff --git a/VDS/Components/Label/Label.swift b/VDS/Components/Label/Label.swift index 7746c48d..e5717126 100644 --- a/VDS/Components/Label/Label.swift +++ b/VDS/Components/Label/Label.swift @@ -28,7 +28,22 @@ open class LabelBase: UILabel, ModelHandlerable, ViewProt open var surface: Surface @Proxy(\.model.disabled) - open var disabled: Bool + open var disabled: Bool { + didSet { + self.isEnabled = !disabled + } + } + + open override var isEnabled: Bool { + get { !model.disabled } + set { + //create local vars for clear coding + let disabled = !newValue + if model.disabled != disabled { + model.disabled = disabled + } + } + } @Proxy(\.model.attributes) open var attributes: [LabelAttributeModel]? diff --git a/VDS/Components/Selector/SelectorBase.swift b/VDS/Components/Selector/SelectorBase.swift index a8ced11a..ce1d66c1 100644 --- a/VDS/Components/Selector/SelectorBase.swift +++ b/VDS/Components/Selector/SelectorBase.swift @@ -125,21 +125,7 @@ open class SelectorBase: Control, Changable @Proxy(\.model.accessibilityLabelDisabled) open var accessibilityLabelDisabled: String? - - //-------------------------------------------------- - // MARK: - Computed Properties - //-------------------------------------------------- - open override var isEnabled: Bool { - get { !model.disabled } - set { - //create local vars for clear coding - let disabled = !newValue - if model.disabled != disabled { - model.disabled = disabled - } - } - } - + //-------------------------------------------------- // MARK: - Constraints //-------------------------------------------------- diff --git a/VDS/Components/Toggle/Toggle.swift b/VDS/Components/Toggle/Toggle.swift index 577ed811..0272fe67 100644 --- a/VDS/Components/Toggle/Toggle.swift +++ b/VDS/Components/Toggle/Toggle.swift @@ -163,20 +163,6 @@ open class ToggleBase: Control, Changable { @Proxy(\.model.accessibilityLabelDisabled) open var accessibilityLabelDisabled: String? - //-------------------------------------------------- - // MARK: - Computed Properties - //-------------------------------------------------- - open override var isEnabled: Bool { - get { !model.disabled } - set { - //create local vars for clear coding - let disabled = !newValue - if model.disabled != disabled { - model.disabled = disabled - } - } - } - //only allows //fontSize: small, large //fontWeight: regular, bold