Ich versuche, ein CGColorRef
auf eines meiner Objekte an die "shadowColor
" Eigenschaft eines CALayer
zu binden. Leider konnte ich das nicht herausfinden - es ist wahrscheinlich etwas sehr Einfaches!Kakaobindungen und KVC mit CGColorRef
Die CGColorRef wird als Eigenschaft implementiert:
@property (readwrite) CGColorRef labelShadowColor;
Meine Bindung ist gerade nach vorne zu:
[aLayer bind:@"shadowColor" toObject:aScreen withKeyPath:@"labelShadowColor" options:nil];
Wo komme ich unstuck ist valueForUndefinedKey:
- wie würde ich dies für eine CGColorRef
implementieren ? Ich bin derzeit die vorformulierten bekommen:
2009-08-09 03:13:50.056 Hyperspaces[33161:a0f] An uncaught exception was raised
2009-08-09 03:13:50.060 Hyperspaces[33161:a0f] [<HSScreen 0x100533930> valueForUndefinedKey:]: this class is not key value coding-compliant for the key labelShadowColor.
2009-08-09 03:13:50.064 Hyperspaces[33161:a0f] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<HSScreen 0x100533930> valueForUndefinedKey:]: this class is not key value coding-compliant for the key labelShadowColor.'
Ich kann, indem eine NSColor
Eigenschaft an beiden Enden dieses Problem umgehen und Einstellung der CALayer
‚s‚shadowColor
‘manuell, wenn die Farbe geändert wird, aber das scheint unelegant.
Dies funktioniert erstaunlich. WTF müssten Sie 'valueForUndefinedKey' deklarieren, wenn tatsächlich - es definiert ist? Völlig kontraintuitiv. Wie hast du das herausgefunden? –
Ehrlich gesagt, war es vor fast 4 Jahren. Ziemlich sicher, das war ein Bug/Detail, wie CG * -Typen mit Eigenschaften zu der Zeit gearbeitet haben, aber ich erinnere mich nicht genau, warum/wie ich zu dieser Schlussfolgerung kam. Funktioniert es noch? Ich würde mir nicht vorstellen, dass es auf iOS notwendig ist (benutze einfach UIColor). –