Xcode插件開發(fā)入門

插件開發(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];
}

滿地打滾賣萌求贊饲窿,如果本文幫助到你煌寇,輕點下方的紅心,給作者君增加更新的動力逾雄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阀溶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸦泳,更是在濱河造成了極大的恐慌银锻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做鹰,死亡現(xiàn)場離奇詭異击纬,居然都是意外死亡,警方通過查閱死者的電腦和手機钾麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門更振,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饭尝,你說我怎么就攤上這事肯腕。” “怎么了钥平?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵实撒,是天一觀的道長。 經(jīng)常有香客問我涉瘾,道長知态,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任立叛,我火速辦了婚禮负敏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秘蛇。我一直安慰自己原在,他們只是感情好友扰,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庶柿,像睡著了一般村怪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浮庐,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天甚负,我揣著相機與錄音,去河邊找鬼审残。 笑死梭域,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的搅轿。 我是一名探鬼主播病涨,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼璧坟!你這毒婦竟也來了既穆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤雀鹃,失蹤者是張志新(化名)和其女友劉穎幻工,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黎茎,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡囊颅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了傅瞻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踢代。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嗅骄,靈堂內(nèi)的尸體忽然破棺而出奸鬓,到底是詐尸還是另有隱情,我是刑警寧澤掸读,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站宏多,受9級特大地震影響儿惫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伸但,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一肾请、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧更胖,春花似錦铛铁、人聲如沸隔显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽括眠。三九已至,卻和暖如春倍权,著一層夾襖步出監(jiān)牢的瞬間掷豺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工薄声, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留当船,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓默辨,卻偏偏與公主長得像德频,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缩幸,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容