objective-c – 如何实现基于Cocoa的Adobe Photoshop插件
栏目: Objective-C · 发布时间: 5年前
内容简介:翻译自:https://stackoverflow.com/questions/1108550/how-to-implement-a-cocoa-based-adobe-photoshop-plugin
在CS3上工作,从Carbon加载它并发出NSApplicationLoad().那是因为Photoshop CS3只是Carbon并用于卸载插件包.
Photoshop CS4使用Cocoa并在主线程上有自己的NSAutorelease池.
在Photoshop CS4上,由NSWindowController加载的非常简单的基于窗口的xibs / nib工作开箱即用.
但是只需在窗口上添加一个绑定到控件上就可以了,当你关闭窗口时,或者第二次使用插件时,或者甚至在关闭Photoshop本身时,你都会遇到有趣的崩溃.
为什么一切似乎都运行良好,直到我使用一些高级Cocoa功能?我被卡住了.
编辑:我真的发现自己解决了更广泛的问题“如何在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; }
这是基于Craig Hockenberry bundle trick .我还在测试它,但它应该适用于CS3和CS4.
翻译自:https://stackoverflow.com/questions/1108550/how-to-implement-a-cocoa-based-adobe-photoshop-plugin
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Python插件机制实现
- 实现Vue表单验证插件
- Python实现SQL注入检测插件
- Rust 实现动态库加载和基于此功能实现的插件管理
- 从零实现Vue的Toast插件
- 用protobuf生成json结构插件实现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精粹
Douglas Crockford / 赵泽欣、鄢学鹍 / 电子工业出版社 / 2009-4 / 35.00元
本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深JavaScript架构师Douglas Crockford倾力之作。 向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。一起来看看 《JavaScript语言精粹》 这本书的介绍吧!