cacao utilisé pour travailler sur CS3 avec le Trick of Mettre un paquet de cacao à l'intérieur du groupe de plug-in principaux , le chargement de la charbon et l'émission d'une connexion NSApplication (). C'est parce que Photoshop CS3 était uniquement en carbone et utilisé pour décharger les faisceaux du plugin. p>
Photoshop CS4 utilise le cacao et possède sa propre piscine NsaTorLease en place sur le fil principal. p>
sur Photoshop CS4 Très simple XIBS / NIBS à base de fenêtres chargés par un NswindowController Travailler hors de la boîte. P>
Ajoutez simplement une liaison à une commande sur la fenêtre et vous obtiendrez des accidents drôles, éventuellement lorsque vous fermez la fenêtre ou la deuxième fois que vous utilisez le plugin ou même lorsque vous fermez la fermeture de Photoshop. P>
Pourquoi tout semble bien fonctionner jusqu'à ce que j'utilise des fonctionnalités de cacao avancées? Je suis coincé. P>
3 Réponses :
Je viens de commencer à travailler sur l'écriture d'un plugin à base de cacao pour CS4. Vraiment, il n'y a presque aucune information sur ce sujet et je l'ai trouvé comme je vais. P>
J'ai été un programmeur Java et Ruby depuis 10 ans, alors mon foo C / C ++ est rouillé et je suis juste d'apprendre l'objectif c comme je vais. Deux «gotchas» que j'ai couru, juste au cas où ... p>
Vous devez créer une nouvelle cible loadable Bundle em> contenant votre NIBS et votre code de cacao. Ajoutez le produit Bundle à la Copier les ressources em> phase de votre plugin. Ensuite, le code d'un plug-in de filtre chargé une fenêtre de cacao avec certaines commandes serait la suivante: Boolean DoUI (void) {
// Create the CF Cocoa bundle
CFBundleRef pluginBundle;
CFURLRef cocoaBundleURL;
pluginBundle = CFBundleGetBundleWithIdentifier(CFSTR("com.example.plugin"));
cocoaBundleURL = CFBundleCopyResourceURL(pluginBundle,
CFSTR("Cocoa_bundle"),
CFSTR("bundle"),
NULL);
CFBundleRef cocoaBundleRef;
cocoaBundleRef = CFBundleCreate(kCFAllocatorDefault, cocoaBundleURL);
CFRelease(cocoaBundleURL);
// start Cocoa (for CS3)
NSApplicationLoad();
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
// load the cocoa bundle by identifier
NSBundle* cocoaBundle;
cocoaBundle = [NSBundle bundleWithIdentifier:@"com.example.plugin.cocoa"];
// load the window controller from the bundle
Class testControllerClass;
testControllerClass = [cocoaBundle classNamed:@"MyWindowController"];
MyWindowController* winController = [[testControllerClass alloc] init];
[NSApp runModalForWindow:[winController window]];
[[winController window] performClose:nil];
[winController release];
// release the bundle
CFRelease(cocoaBundleRef);
[pool release];
return 1;
}
@Ildan - Avez-vous pu obtenir des liaisons de cacao à travailler dans votre plugin? Consultez la question de la dépassement de ma pile sur le cacao en carbone. J'ai des problèmes avec ça et tout intérieur serait apprécié.
CS2 chargera le code PowerPC Mach-O aussi facilement que CS3 / CS4. Quelqu'un a-t-il testé cette approche de cacao dans CS2? P>
Actuellement, j'utilise du carbone pour CS2 / CS3 / CS4 car il est garanti de fonctionner partout dans les charges du plugin; et cacao pour CS5 bien sûr, que ce soit 32 ou 64 bits. P>
Chris Cox n'est pas optimiste sur le cacao travaillant dans quoi que ce soit autre que CS5: http://forums.adobe.com/message/3256555#3256555 P>
Alors, quelle est la vraie affaire ici? Il est difficile d'ignorer les conseils de la bouche du cheval. P>