在 Xcode 中创建自定义模板 - 如何根据复选框制作所需的选项?

Posted

技术标签:

【中文标题】在 Xcode 中创建自定义模板 - 如何根据复选框制作所需的选项?【英文标题】:Creating a custom template in Xcode - how can I make a required option based on a checkbox? 【发布时间】:2013-02-14 20:31:54 【问题描述】:

我正在尝试在 Xcode 中创建自定义模板。在我的 TemplateInfo.plist 中,对于关键选项,我在下面粘贴了代码。此模板适用于在事件发生时经常(但并非总是)使用委托的类。

我遇到的问题是最底部的值RequiredOptions。我希望仅在 withProtocol 复选框被选中时启用文本框。但是,我无法弄清楚要使用什么价值和价值类型。我尝试了以下方法:

<true/>(如下)- 文本框始终处于启用状态。 <string>YES</string> - 文本框始终处于禁用状态。 <integer>1</integer> - 文本框始终处于启用状态。

有人对我还可以尝试什么有任何想法吗?更好的是,有人知道 Xcode 模板的不错参考吗?

我已经阅读了 Apple 的 plist 手册页和this website 上的文章。

<array>
    <dict>
        <key>Description</key>
        <string>The name of the class to create</string>
        <key>Identifier</key>
        <string>productName</string>
        <key>Name</key>
        <string>Class</string>
        <key>NotPersisted</key>
        <true/>
        <key>Required</key>
        <true/>
        <key>Type</key>
        <string>text</string>
    </dict>
    <dict>
        <key>Default</key>
        <string>false</string>
        <key>Identifier</key>
        <string>withXIB</string>
        <key>Name</key>
        <string>With XIB for user interface</string>
        <key>Type</key>
        <string>checkbox</string>
    </dict>
    <dict>
        <key>Description</key>
        <string>Choose whether or not a delegate skeleton is included.</string>
        <key>Default</key>
        <string>false</string>
        <key>Identifier</key>
        <string>withProtocol</string>
        <key>Name</key>
        <string>With delegate skeleton</string>
        <key>Type</key>
        <string>checkbox</string>
    </dict>
    <dict>
        <key>Description</key>
        <string>The name of the protocol used for delegation.</string>
        <key>Identifier</key>
        <string>protocolName</string>
        <key>Name</key>
        <string>Protocol</string>
        <key>NotPersisted</key>
        <true/>
        <key>Required</key>
        <true/>
        <key>Type</key>
        <string>text</string>
        <key>RequiredOptions</key>
        <dict>
            <key>withProtocol</key>
            <true/>
        </dict>
    </dict>
</array>

【问题讨论】:

当我使用自定义模板时,它会自动使用 templateinfo.plist 中写入的文件,我可以限制它们吗?意味着如果我仅在文件进入我的应用程序时选择复选框。 对不起,我不明白你的意思。你能改写吗? 【参考方案1】:

我通过将&lt;true/&gt; 替换为&lt;string&gt;true&lt;/string&gt; 解决了我自己的问题。

【讨论】:

这在 Xcode 11 中不起作用。有替代方法吗?【参考方案2】:

根据复选框添加所需选项的正确方法

RequiredOptions 字典的键必须是另一个选项的标识符,并且字典的值必须是允许启用当前选项的选项值子集的数组。

<key>RequiredOptions</key>
<dict>
    <key>withXIB</key>
    <array>
        <string>true</string>
    </array>
</dict>

在您的情况下,true 可以完成工作。

在 Xcode 12 上测试 ✅

【讨论】:

以上是关于在 Xcode 中创建自定义模板 - 如何根据复选框制作所需的选项?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift Xcode 中创建自定义导航栏?

如何在Xcode + Swift 4中创建自定义UIBarButtonItem类?

如何在文件夹中创建自定义页面模板

在 Xcode 中创建自定义 xib 视图大小

如何根据行创建日期在 PostgreSQL 中创建自定义序列?

如何根据 barplot 的值在 matplotlib 中创建自定义图例?