剛寫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 class
是string
型別。
然後開啟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...