Ekulelu's Blog

创建属于自己的Xcode文件模板

所谓的模版,就是用XCode新建工程或文件的时候,XCode提供给我们的选择项。
在实际开发中,有些代码是十分重复的,基本上某一类的类都会用到,这样就很有必要自定义一个模板,这样每次新建这种文件的时候,这些代码都可以自动生成。
之前有提到建立一个ViewManager来对UIViewController进行瘦身,那么这里就新建一个这种UIViewController的模板,每次新建这种UIViewController的时候,都会自动生成它的ViewManager,并且已经完成了这两个类之间的绑定。

1、找到XCode的模板目录
来到 “应用程序” 目录,对XCode右击,选择”显示包内容”。 然后在打开的文件夹里面找到下面目录

1
Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates

在这个目录里面可以看到有

留意到路径里面的iPhoneOS.platform和File Templates这两个目录。有兴趣的可以自行看看。
这里的目录对应了你在新建文件时候看到的标签,由于我是要新建Source文件,来的Source文件下面,

选择Cocoa Touch Class。在下面我们看到了很多的模板文件,XCode根据你的输入的子类去选择不同的文件夹下面的模板来建立文件,如果该子类没有对应的文件夹,那么会使用NSObject的。如果连NSObject都没,那么不会创建文件。

我们照猫画虎,先在Cocoa Touch Class.xctemplate的文件夹下面新建一个文件夹,名字改为

VCClass.xctemplate

(应该要你输入密码)进入该文件夹,把Cocoa Touch Class.xctemplate里面的UIViewControllerObjective-CUIViewControllerXIBObjective-C文件夹拷贝过来。这两个文件夹看名字应该知道了,一个是对应有xib,一个是木有的。另外把TemplateIcon.png和那个@2x的图片也拷贝过来,这个就是模板显示的图片,你可以进行PS一下。最后拷贝的是TemplateInfo.plist
下面解释一下TemplateInfo.plist

Platforms : 对应是在哪个平台,也就是新建时候的标签,这里由于是从iphoneOS里面拷贝过来的,所以显示的是iPhoneos。

Item0 - item3 : 依次对应下面的显示框。具体的展开就不介绍了,自行打开一下就知道里面的属性的意思了。因为我们没有写swift的,所以记得改一下item3的属性。

然后进入到刚刚拷贝的UIViewControllerObjective-C目录。里面有两个文件___FILEBASENAME___.h/.m,我们将它们都复制一下后改名,得到下面的文件。

主要到后面新加的ViewManager,这个会自动加在你输入的Class名字后面。然后我们可以在这四个文件里面进行编辑,举个例子,___FILEBASENAME___.m可以改为这样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#import "___FILEBASENAME___.h"
#import "___FILEBASENAME___ViewManager.h"
@interface ___FILEBASENAMEASIDENTIFIER___ ()
@property (strong, nonatomic) ___FILEBASENAMEASIDENTIFIER___ViewManager *viewManager;
@end
@implementation ___FILEBASENAMEASIDENTIFIER___
- (void)viewDidLoad {
[super viewDidLoad];
[self setupSubviews];
}
- (void)setupSubviews {
self.viewManager = [[___FILEBASENAMEASIDENTIFIER___ViewManager alloc] initWithView:self.view];
}

稍微留意一下引入其他新建文件和创建类的语句就好了。
ViewManager的模板代码这里就不贴了。
将这些文件保存之后,不用重启XCode就可以看到刚刚建立的文件模板了。