 
     public var floatValue: DynamicSubject<Float> {
         return dynamicSubject(
-            signal: keyPath(#keyPath(NSControl.floatValue), ofType: Float.self).eraseType(),
+            signal: objectValue.eraseType(),
             triggerEventOnSetting: false,
             get: { $0.floatValue },
             set: { $0.floatValue = $1 }


    public var attributedStringValue: DynamicSubject<NSAttributedString> {
        return dynamicSubject(
            signal: keyPath(#keyPath(NSControl.attributedStringValue), ofType: NSAttributedString.self).eraseType(),
            triggerEventOnSetting: false,
            get: { $0.attributedStringValue },
            set: { $0.attributedStringValue = $1 }


    public var objectValue: DynamicSubject<Any?> {
        return dynamicSubject(
            signal: controlEvent.eraseType(),
            triggerEventOnSetting: false,
            get: { $0.objectValue },
            set: { $0.objectValue = $1 }
