可可用于工作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

那么,这里是真正的交易吗?这是非常难以忽视从马的嘴意见。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top