Xcode自定義模板

zvgp3592 7年前發布 | 10K 次閱讀 Xcode C語言

為何要自定義Xcode模板

有時候公司會要求一定的代碼規范,例如控制器中需要用#pragma mark -來分割各個方法們,像這樣:

#pragma mark - LifeCycle

- (void)dealloc {}

- (void)viewDidLoad {}

- (void)viewWillAppear:(BOOL)animated {}

#pragma mark - UITextFieldDelegate

- (BOOL)textFieldShouldReturn:(UITextField *)textField {}

#pragma mark - Public

#pragma mark - Private

#pragma mark - Getter

- (NSString *)name {}

#pragma mark - Setter

- (void)setName:(NSString *)name {}

這樣不僅可以分割代碼,方便閱讀,而且可以方便找到某個方法:

但是每創建一個類就寫一遍這些是不是有點繁瑣呢,這個時候就要用到Xcode的自定義模板功能了。

修改系統模板樣式

Xcode系統模板的路徑是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/,文件夾里面有文件模板File Templates和工程模板Project Templates,分別對應創建文件時的選項和創建工程時的選項:

創建文件界面

創建工程界面

我們用的最多就是File Templates/Source/Cocoa Touch Class.xctemplate里面的模板。里面長的是這樣的:

Cocoa Touch Class.xctemplate

例如我們今天需要改UIViewController的模板,就需要改其中的UIViewControllerObjective-C、 UIViewControllerSwift、UIViewControllerXIBObjective-C、UIViewControllerXIBSwift。他們的區別從名字上就能看出來,就是OC與Swift,是否用Xib的區別。

我們以OC并且不用Xib為例,打開UIViewControllerObjective-C中的___FILEBASENAME___.m文件:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

是不是很熟悉,就是我們創建一個控制器后.m里面的代碼。其中的一些宏的意義是:

這個文件默認是不讓修改的,我們可以修改他的權限,或者復制一份到別處,修改完替換原文件。總之修改其中的內容為:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

#pragma mark - LifeCycle

- (void)viewDidLoad
{
    [super viewDidLoad];
}


#pragma mark - UITableViewDelegate

#pragma mark - Public

#pragma mark - Private

#pragma mark - Getter

#pragma mark - Setter

@end

然后把這個文件去替換原來的文件。替換成功后新建一個控制器,就會是我們自定義的結構了,如果沒生效的話,可以重啟下Xcode哦:

新建一個控制器

相信到這里,其他的模板你也一定會改了吧。

使用自定義模板

如果你不想去修改系統的模板,可以在File Templates下新建一個Custom Template文件夾,把系統的Cocoa Touch Class.xctemplate復制進去,然后進行修改就可以了。不會影響系統的默認模板的樣式。

這樣在創建文件的時候,在最下面就會有你自定義的模板選項;

選擇模板

好了,到這里大家應該都熟悉了Xcode模板的基本使用,快去探索更多高級用法吧!

 

來自:http://www.cocoachina.com/ios/20170419/19087.html

 

 本文由用戶 zvgp3592 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!