J'essaye de lier un CGColorRef
sur un de mes objets à la propriété "shadowColor
" d'un CALayer
. Malheureusement, je n'ai pas été capable de comprendre cela - c'est probablement quelque chose de très simple!Liaisons Cocoa et KVC avec CGColorRef
Le CGColorRef est mis en œuvre comme une propriété:
@property (readwrite) CGColorRef labelShadowColor;
Ma fixation est simple aussi:
[aLayer bind:@"shadowColor" toObject:aScreen withKeyPath:@"labelShadowColor" options:nil];
où je viens décollée est valueForUndefinedKey:
- comment pourrais-je mettre en œuvre cela pour un CGColorRef
? Je suis actuellement obtenir le passe-partout:
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.'
je peux contourner ce problème en mettant NSColor
la propriété sur les deux extrémités et le réglage de la « shadowColor
» de CALayer
manuellement à chaque fois que la couleur est modifiée, mais qui semble inélégant.
Cela, étonnamment, fonctionne. WTF auriez-vous besoin de déclarer 'valueForUndefinedKey', alors qu'en fait - il est défini? Totalement contre-intuitif. Comment avez-vous compris cela? –
Honnêtement, c'était il y a près de 4 ans. Assez sûr que c'était un bug/détail de la façon dont les types CG * fonctionnaient avec les propriétés à la fois, mais je ne me souviens pas précisément pourquoi/comment je suis arrivé à cette conclusion. Est-ce que ça marche encore? Je ne pense pas que ce soit nécessaire sur iOS (utilisez simplement UIColor). –