寫個自己的Xcode4外掛程式

2021-06-19 16:20:10 字數 1808 閱讀 1675

剛寫ios程式的時候就知道xcode支援第三方外掛程式,比如colorsense等很實用的外掛程式,但xcode的外掛程式開發沒有官方的文件支援,一直覺得很神秘,那今天就來揭開它的面紗。

ok,我們先做乙個簡單的外掛程式,需要很簡單的幾個步驟即可完成,我的環境是xcode 4.6.3 (4h1503)。

xcode外掛程式其實就是乙個mac os x bundle,所以可以參考下圖建立乙個bundle。

給project起個名字,並確保不要勾選use automatic reference counting,因為xcode是使用gc來管理記憶體的,所以xcode的外掛程式也需要是用gc來管理記憶體的。framework選擇cocoa

像下圖一樣設定這些資訊

前三個可能info裡預設沒有,可以自己新增,都選boolean型別,最後乙個principal classstring型別。

然後開啟build setting tab,設定這些:

準備工作已經結束,下面開始實現我們的外掛程式。

+

(void

)plugindidload:

(nsbundle*)

plugin);}

-(id)

init

return

self

;}

一旦接收到xcode載入完畢的通知,就可以observe需要的其他notification或者在選單中新增選單項或者訪問code editor之類的ui元件。

在我們的這個簡單例子中,我們就在edit下新增乙個叫做custom plugin的選單項,並設定乙個⌥ + c快捷鍵。它的功能是使用nsalert顯示出我們在**編輯器中選中的文字。我們需要通過觀察nstextviewdidchangeselectionnotification並訪問接收引數中的nstextview,來獲得被選中的文字。

-

(void)(

nsnotification*)

notification}-

(void

)selectiondidchange:(

nsnotification*)

notification

nsrange

selectedrange=[[

selectedranges

objectatindex:0

]rangevalue

];nsstring

*text

=textview

.textstorage

.string

;selectedtext=[

text

substringwithrange

:selectedrange];}

}-(void

)showmessagebox:(

id)origin

你會發現在出現selectedtext的地方會報錯,在實現裡新增上nsstring *selectedtext即可。

@implementation

plugin

最終效果:

本文主要參考和編譯自writing your own xcode 4 plugins,感謝原作者blacksmith software

XCode4配置three20,自己記錄下

2。在解壓目錄下src three20下的three20.xcodeproj拖到自己的工程裡,在彈出的對話方塊中destination欄 copy items into destination group s folder 不要選中,addto targets欄中選中自己的工程target,並不是u...

XCode 4 使用筆記

1.連線ipad裝置後,裝置沒有出現在run列表中,列表中只有ios裝置和simulator 解決方法 在project的setting項中,設定ios deploy target 的ios version 為裝置的ios版本。我用的裝置時ipad ios4.2,但是xcode4預設的sdk版本是i...

Xcode 4 建立靜態庫

為了 保密或者 重用等等原因需要把現有的 打包放入靜態庫中,這也是靜態庫的好處,所以今天一天都在研究如何用xcode 4建立靜態庫,也是為了我們的專案需要。qq發布的微博sdk會報錯,也是因為沒有把靜態庫打包為unniver static libraries的原因,至於是什麼是unniver sta...