如何实现一个可可基于Photoshop插件
-
12-09-2019 - |
题
可可用于工作CS3的 一招把可可束内部的主要碳插束, ,载入它从碳和发NSApplicationLoad().那是因为Photoshop CS3是碳-只有并用于装卸的插件包。
Photoshop cs中4使用可可和拥有自己NSAutorelease游泳池在地方上的主线。
在Photoshop cs中4非常简单的基于窗口xibs/尖载由NSWindowController工作。
但是,仅仅增加一个结合的控制上的窗口,你就会得到有趣的崩溃,可选的,当你接近的窗口,或第二次使用的插件,或甚至关闭时Photoshop本身。
为什么一切都似乎运作良好,直到我使用一些先进的可可?我卡住了
编辑:我真的找到自己的解决更广泛的问题"如何使用的可可在Photoshop CS3/CS4插件?".见下文。
解决方案
您必须创建一个新的可装载捆绑的包含您的笔尖和您的Cocoa目标代码。捆绑产品添加到复制包资源的插件的阶段。然后加载一个可可窗口与一些控制用于过滤器插件的代码将是:
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;
}
此是基于克雷格Hockenberry 束特技。我还在测试,但它应该工作无论在CS3和CS4。
其他提示
我刚开始工作在编写一个可可基于插件CS4.真的,有的是几乎没有信息没有关于这一主题,并且我已经计算出来因为我去.
- 开始从这个苹果的例子,并确保你下载整个项目,因为有几个小细节中缺少的文本:
- 挑一的Photoshop SDK例(我用ColorMunger),并保持其简单的开始,因此只是试图取代"关于"对话框使用的苹果公司的例子作为你的模板。一旦你有了这些工作没有记忆的问题,你应该在你的方式。
我已经Java和红宝石的程序员为10年,因此我C/C++foo是生锈,而我只是学习目标C我去。两个"陷阱"我跑到,只是在。
- 不要创建一个控制器物体在你的笔尖/XIB文件。因为,根据这苹果的实例中,控制器打开的笔尖文件在它的初始方法,并且你得到一个非常有趣的递归的循环
- 苹果的例子是嵌入可可的东西在一个碳基C程序。Adobe例子都C++。别忘了你的外部"C"{}在你的头文件。
CS2会容易地加载的PowerPC Mach-O的代码作为CS3 / CS4。有没有人在CS2测试了这个可可的方法呢?
目前我使用CS2 / CS3 / CS4碳,因为这是保证工作无处不在插件加载;和可可为当然CS5,无论32或64位。
克里斯·考克斯是不是可可比CS5以外的任何工作持乐观态度: http://forums.adobe.com/message/3256555#3256555
那么,这里是真正的交易吗?这是非常难以忽视从马的嘴意见。