在 Xcode 中,当你创建一个新的 Swift 文件时,默认情况下它会包含一些标准的模板内容。例如,如果你创建一个 UIView 或 UIViewController 的子类,Xcode 会自动生成一些基本的代码结构。
然而,如果你想要自定义这些模板内容,你可以通过修改 Xcode 的模板文件来实现。
一、自定义xcode模板
以下是如何自定义 Xcode 模板文件的步骤:
1、找到模板文件
Xcode 的模板文件通常位于以下路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/
你可以找到不同类型的模板文件,例如 Source 文件夹中包含 Swift 文件的模板。
2、创建自定义模板文件夹
你可以在以下路径创建一个自定义模板文件夹:
~/Library/Developer/Xcode/Templates/
当电脑上安装有多个xcode时候需要注意:
~/Library/Developer/Xcode/Templates/
这个路径是通用的
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/
这个路径是某个Xcode的
在这个文件夹中,你可以创建一个新的文件夹,例如 Custom File Templates。
3、复制原始模板
从原始模板文件夹中复制你想要自定义的模板文件到你创建的自定义模板文件夹中。
4、修改模板文件
打开复制的模板文件,并根据需要进行修改。模板文件通常是 .xctemplate 文件夹,其中包含一个或多个 .swift 文件。
5、添加自定义内容
在模板文件中,你可以添加自定义内容。例如,你可以在 ___FILEBASENAME___.swift
文件中添加以下内容:
swift
import UIKit
class ___FILEBASENAMEASIDENTIFIER___: UIView {
// 自定义初始化代码
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
private func setupView() {
// 自定义设置代码
}
}
6、保存并使用自定义模板
保存修改后的模板文件,并重启 Xcode。现在,当你创建一个新的 Swift 文件时,你可以选择你自定义的模板,并自动包含你添加的标准代码。
通过这些步骤,你可以自定义 Xcode 的模板文件,以便在创建新的 Swift 文件时自动包含你需要的标准内容。
二、附录
1、TemplateInfo.plist 常见属性说明
属性名 | 描述 | 值类型 | 示例值 |
---|---|---|---|
Kind | 指定模板的类型 | 字符串 | Xcode.IDEKit.TextSubstitutionFileTemplateKind |
Identifier | 模板的唯一标识符 | 字符串 | com.example.MyTemplate |
Ancestors | 指定模板继承的其他模板 | 数组 | ["com.apple.dt.unit.storyboard"] |
Concrete | 指定模板是否是具体模板 | 布尔值 | YES |
Description | 模板的描述信息 | 字符串 | My custom Swift file template |
SortOrder | 模板的排序顺序 | 整数 | 10 |
Options | 模板的选项 | 数组 | |
Options > Identifier | 选项的唯一标识符 | 字符串 | com.example.OptionName |
Options > Name | 选项的显示名称 | 字符串 | Option Name |
Options > Description | 选项的描述信息 | 字符串 | This is a custom option |
Options > Type | 选项的类型 | 字符串 | text |
Options > Default | 选项的默认值 | 字符串/布尔值 | YES |
Options > Values | 选项的可选值(仅适用于 popup 类型) |
数组 | ["Value1", "Value2"] |
Options > RequiredOptions | 选项的依赖选项(仅适用于 popup 类型) |
字典 | |
Options > FileName | 选项对应的文件名(仅适用于 text 类型) |
字符串 | MyFile.swift |
Options > Replaces | 选项替换的占位符(仅适用于 text 类型) |
字符串 | ___FILEBASENAME___ |
Options > Units | 选项的单位(仅适用于 popup 类型) |
字典 | |
Options > Units > Identifier | 单位的唯一标识符 | 字符串 | com.example.UnitName |
Options > Units > Name | 单位的显示名称 | 字符串 | Unit Name |
Options > Units > Description | 单位的描述信息 | 字符串 | This is a custom unit |
Options > Units > Files | 单位对应的文件 | 数组 | |
Options > Units > Files > Path | 文件的路径 | 字符串 | MyFile.swift |
Options > Units > Files > Name | 文件的名称 | 字符串 | MyFile |
Options > Units > Files > TargetIdentifiers | 文件的目标标识符 | 数组 | ["com.apple.dt.unit.storyboard"] |
2、模板文件中占位符字符串
当你使用 Xcode 模板创建新文件时,这个占位符会被实际的文件名替换。
-
___FILEBASENAME___
: 表示生成的文件的基本名称(即不包含路径和扩展名的文件名) -
___FILENAME___
:表示完整的文件名(包含扩展名)。 -
___PROJECTNAME___
:表示项目的名称。 -
___PRODUCT_MODULE_NAME___
:表示产品模块的名称。 -
___FULLUSERNAME___
:表示当前用户的完整用户名。 -
___DATE___
:表示当前日期。 -
___TIME___
:表示当前时间。
3、自定义模板使用
- 将自定义模板传到git仓库
- git clone到本地
- 将自定义模板拷贝到以下目录下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/
- 重启Xcode
- 想正常创建新的文件一样,选择自定义的模板名称即可