在Xcode中创建自己的模板

  • TemplateIcon.png
    此图标将在模板选择器中使用。
  • TemplateIcon@2x.png
    与TemplateIcon.png相同,但用于Retina Mac。
  • TemplateInfo.plist
    属性列表包含有关模板的其他元数据,例如描述,摘要,种类等。
  • __FILEBASENAME __。swift
    这是您将自定义以满足您需求的模板文件。

__FILEBASENAME__占位符将替换为您在模板选择器中输入的任何内容; 这也可以在您的模板中使用。


这是一个简单的UIView模板的样子:

值得一提的是,您可以将模板与代码段占位符结合使用。 如果您熟悉Xcode代码段的概念,就会知道对于特定代码段,您可以添加占位符标签,用户可以在其中导航并替换为实际代码。 这有助于加快过程,并使模板更易于使用。
您可以将代码段占位符作为插入模板中。 然后将其替换为macOS令牌元素。


为了分享一些启发,这里有一些我经常使用的模板。

流量控制器

我的流量控制器通常包含多个控制器。 就个人而言,我倾向于“默认”使它们成为FamilyViewController 。

UICollectionViewCell

这不是一个非常高级的模板,但是看到我在没有界面生成器的情况下以编程方式处理所有UI组件时,我始终会覆盖初始化程序并在其中添加自定义视图。 这迫使我用编码器功能添加所需的初始化。 模板为我节省了编译器所需的时间,从而减少了该方法的丢失,并使我不得不调用修复所有问题 。 虽然数量不多,但从长远来看,一切都很重要。

UIViewController

这个模板只是实现了viewDidLoad方法,因为这是我倾向于为视图控制器添加大部分设置的地方,并且初始化器很难通用,尤其是在依赖注入的情况下。

从我所有的示例中都可以看到,我的模板非常精简,其中一些模板几乎不做任何事情,只是采用___FILEBASENAME___并将其用作类名。 这样做的原因是我希望它们整洁。 我觉得如果我制作模板并且每次我要使用它们时都需要从模板中删除很多东西,那么它们就无法达到预期的目的。 从创意的角度来看,过于先进的模板也更加需要使用,因为在创建画布之前,有时需要没有相关上下文,这将要求您做出决定并仔细考虑。 我希望我的画布没有混乱,这使它们更具吸引力。

当您开始使用模板时,您会很快发现,在半生态位和完全通用之间找到一个良好的中间地带可能是非常困难的。 但是请记住,模板没有对与错,它们应该是个人的,创建适合您的需求并在您的上下文中有意义的模板。 如果它们无法解决问题,则只需更改它们,直到可以。

如果您有任何要分享的好技巧,请在Twitter上打我,我们可以进行比较。 您可以通过@zenangst与我联系。