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


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


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