Cocoa-创建iTunes插件

Cocoa-创建iTunes插件,第1张

概述1. 首先,创建一个Bundle工程 2. 新建一个类,作为iTunes调用插件的入口 例如,我新建了一个叫PluginController的类 3. 新建一个Window.xib和DemoWindowController类用来展示插件是否被调用起来了 4. 代码实现 DemoWindowController.m 仅实现了init方法 - (id)init{ self = [super 1. 首先,创建一个Bundle工程



2. 新建一个类,作为iTunes调用插件的入口 例如,我新建了一个叫PluginController的类



3. 新建一个Window.xib和DemoWindowController类用来展示插件是否被调用起来了



4. 代码实现 DemoWindowController.m 仅实现了init方法
- (ID)init{    self = [super initWithWindowNibname:@"Window" owner:self];    if (self) {        // Initialization code here.    }        return self;}


PluginController.m 定义了两个静态方法initialize()和finalizer(),分别在iTunes启动和退出时被调用。iTunes是怎么去找插件的入口和出口呢? 关键就在__attribute__ ((constructor)) 和 __attribute__ ((destructor)) 这两个GCC编译器扩展 。initialize()主要目的是d出示例窗口,这样我们就知道插件有没有被调用起来。finalizer()方法是用来iTunes退出时关闭示例窗口,释放资源。
  

#import "PluginController.h"#import "DemoWindowController.h"@implementation PluginController@endstatic DemoWindowController *windowController;//__attribute__  这个关键字是GCC 编译器对标准的扩展,它用来修饰函数属性,变量属性,类型属性//__attribute__ ((constructor)) 所修饰的方法会在 main() 之前执行//iTunes启动后执行这个方法__attribute__ ((constructor))static voID initialize(){    NSLog(@"Start");    windowController = [[DemoWindowController alloc] init];    [windowController.window makeKeyAndOrderFront:nil];}//__attribute__ ((destructor)) 所修饰的方法会在main()执行结束之后执行//iTunes退出后执行这个方法__attribute__ ((destructor))static voID finalizer() {    [windowController.window close];    [windowController release];}

5. 添加PkgInfo文件
做完上面所述步骤后,编译生成Bundle文件放入iTunes插件目录(下面会做介绍),启动iTunes发现根本文法启动。比较下别人做的iTunes插件,发现Bundle的Contents目录下有一个PkgInfo文件,而我编译出的Bundle文件没有,所以我就把那个PkgInfo拷过来试试,居然成功了。各位可以从我下面放的源码中找到这个文件。



添加的资源文件会默认放在Resources目录下,但是我们需要放在Contents目录下,所以还需要做点配置。 请注意看下面的Subpath,我用两个点(..),就是表示Resources目录的上层目录(Contents目录)。



编译后,打开Bundle的内容,可以看到Contents目录下有Pkginfo文件了。



6. 拷贝编译后的Bundle放在iTunes插件目录下 在终端执行命令:  open ~/library/iTunes/iTunes\ Plug-ins/   打开iTunes插件目录,将生成的bundle(即iTunesPluginDemo.bundle)文件拷贝到这个目录下。

然后,打开iTunes,会发现示例窗口跟着d出来了,退出iTunes,示例窗口也会随之关闭。
最后,奉上所有源码:  iTunesPluginDemo.zip 总结

以上是内存溢出为你收集整理的Cocoa-创建iTunes插件全部内容,希望文章能够帮你解决Cocoa-创建iTunes插件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存