插件開發(fā)
插件的簡介
- Xcode插件灼舍,必須是與Xcode是同一個級別的應用,也就是必須也是mac OS APP
- 改變Xcode常規(guī)的操作被稱為插件
- Xcode著名的插件文檔注釋拉鹃,顏色提示,圖片選擇等等...
插件的開發(fā)步驟
- 需要配置項目中的pist文件
- 需要修改和添加plist文件只中的多處
- 操作繁瑣鲫忍,步驟麻煩
- 這時候膏燕,有一個專門用來開發(fā)插件的插件Xcode Plugin
插件
- 在新建項目中的OS X中多了一個Xcode Plugin模板
- 選擇模板中的Xcode Plugin進行開發(fā)
模板分析
- (id)initWithBundle:(NSBundle *)plugin
{
if (self = [super init]) {
// reference to plugin's bundle, for resource access
// 應用插件的資源包,用于資源訪問
// 在NSObject_Extension中初始化的時候設(shè)置
self.bundle = plugin;
// 發(fā)送Xcode程序啟動的通知
// 調(diào)用didApplicationFinishLaunchingNotification方法
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didApplicationFinishLaunchingNotification:)
name:NSApplicationDidFinishLaunchingNotification
object:nil];
}
return self;
}
- 獲取到啟動Xcode的通知調(diào)用
/**
* 當Xcode啟動的時候調(diào)用
*
*/
- (void)didApplicationFinishLaunchingNotification:(NSNotification*)noti
{
// 接收到通知后移除通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSApplicationDidFinishLaunchingNotification object:nil];
// 獲取到Edit菜單
NSMenuItem *menuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
if (menuItem) {
// 添加一條分割線
[[menuItem submenu] addItem:[NSMenuItem separatorItem]];
// 創(chuàng)建一個菜單項目
// 設(shè)置菜單項目的點擊事件
NSMenuItem *actionMenuItem = [[NSMenuItem alloc] initWithTitle:@"Do Action" action:@selector(doMenuAction:) keyEquivalent:@""];
// 將事件交給當前類處理
[actionMenuItem setTarget:self];
// 添加子標題
[[menuItem submenu] addItem:actionMenuItem];
}
}
- 點擊菜單上的Edit中的Do Action按鈕調(diào)用
// 彈出彈框
- (void)doMenuAction:(NSMenuItem *)item
{
NSLog(@"=====%@ item = %@",item.keyEquivalent,item);
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:[NSString stringWithFormat:@"Hello, World%@",item.keyEquivalent]];
[alert runModal];
}
滿地打滾賣萌求贊饲窿,如果本文幫助到你煌寇,輕點下方的紅心,給作者君增加更新的動力逾雄。