Xcode 4 に自作ファイルテンプレートを追加する
Xcodeで新しいクラスを作ろうとすると、
こんな感じでテンプレートを選択できます。
が、見ての通りあんまり種類がありません。
(よく使うのはUIViewControllerのサブクラスと標準クラスぐらい)
APIをコールするクラスとか、DBにアクセスするクラスとか、UITableViewを持つUIViewControllerとか、アプリを何個もつくってるとさすがに何度も同じコードを書いてる気がしてきたので、ちゃんとテンプレートを整備することにしました。
※参考ページ
Xcodeのテンプレートを作成する方法
カスタムテンプレートファイルの置き場
ファイルの置き場などは上記参考ページの頃とは変わっているようです。
私の環境(Xcode4)では、
- デフォルトのテンプレートが入っている場所
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates
- 自分で作成したテンプレートを置く場所
~/Library/Developer/Xcode/Templates
でした。(最初はTemplatesというフォルダはありません)
試しにTemplatesフォルダをごっそり~/Library/Developer/Xcode/にコピーしたところ、新規ファイル作成時のテンプレート選択ダイアログはこうなりました。
追加されて選択肢が倍増していることがわかります。
テンプレートの作成手順
Cocoa Touch ClassディレクトリとObjective-C classディレクトリが階層構造になっており、その下のHogehoge.pbfiletemplateが実際のテンプレートになります。中のclass.hとclass.mを書き換えることで、テンプレートの内容を変更できます。
というわけで、試しに個人的には非常に使用頻度の高い、「UITableView入りのUIViewControllerサブクラス」のテンプレートを作ってみました。
- "UIViewController subclass.xctemplate"フォルダを"UIViewController subclass custom.xctemplate"にリネーム
- "UIViewControllerwithXIB"フォルダを"UIViewControllerwithXIBwithUITableView"にリネーム
- "UIViewControllerwithXIBwithUITableView"フォルダ配下の"___FILEBASENAME___.*"を編集して所望のテンプレートを作成
- 同じ階層にあるTemplateInfo.plistのOptions要素に、withUITableView要素を追加
<key>Options</key> <array> (略) <dict> <key>Default</key> <string>true</string> <key>Identifier</key> <string>withUITableView</string> <key>Name</key> <string>With UITableView</string> <key>Type</key> <string>checkbox</string> </dict> </array>
以上の手順でテンプレートを自作し、Xcode4から新規ファイル作成をしてみると、以下のように自作ファイルテンプレートを選択できるようになりました。
なんでもっと早くやらなかったんだろってぐらい便利です。
というわけでこの週末はひたすらテンプレート整備に明け暮れたいと思います!