更新
下面介绍 Xcode 9 及更高版本。
从 Xcode 9 开始,当您在项目中创建组时,Xcode 可以自动创建文件系统文件夹。
当您在项目导航器中右键单击(或按住 Control 单击)时,上下文菜单将包括“新建组”菜单项和“带文件夹的新建组”菜单项或“不带文件夹的新建组”菜单项。
换句话说,关于文件夹创建,“新组”总是与其他(显式)菜单项相反。
如果您重命名一个组,并且该组具有相应的同名文件夹,Xcode 9 也会重命名该文件夹。
在 Xcode 9 中,如果您将一个文件从一个组拖到另一个组,并且这些组具有不同的文件夹,则 Xcode 9 会将文件移动到新组的文件夹,而不管新组的文件夹是否与该组同名。
如果您不希望在 Xcode 9 中出现这种行为,您可以从命令行设置一个未记录的设置:
defaults write com.apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES
“带文件夹的新组”和“不带文件夹的新组”的无法推断的细节</h3>
Xcode 如何决定是显示“New Group”和“New Group with Folder”,还是“New Group”和“New Group without Folder”,这一点并不明显。WWDC 2018 的一位 Apple 工程师(我想他的名字是 Paul)查看了 Xcode 源代码并向我解释:
- Xcode 会计算出您单击了哪个组(或者,如果您没有单击某个组,它会计算出哪个组包含您单击的项目)。
- Xcode 查看作为单击组的子组的子组(和链接的文件夹)。
- 如果大多数子组都有自己的文件夹,那么 Xcode 假定您希望新组也有自己的文件夹。所以 Xcode 显示“New Group”(将创建一个文件夹)和“New Group without Folder”。
- 如果大多数子组没有自己的文件夹,那么 Xcode 假定您希望新组也没有自己的文件夹。所以 Xcode 显示“New Group”(不会创建文件夹)和“New Group with Folder”。
- 如果恰好有一半的子组有自己的文件夹,我不知道 Xcode 是如何打破平局的,而且我现在不想测试它……</li>
- 如果点击的组没有子组,Xcode 会根据点击的组本身是否有自己的文件夹来决定显示什么。
基本上,Xcode 会根据未来的兄弟姐妹是否有自己的文件夹来猜测您的新组是否应该有自己的文件夹。
原来的
您可以直接在 Xcode 中创建一个具有自己文件夹的新组,但这一点也不明显。
不要选择“新建组”,而是选择“将文件添加到“<项目>””。然后,在文件选择器对话框中,单击新建文件夹按钮或按 Command-Shift-N 并键入新文件夹/组的名称。然后,确保选择“为任何添加的文件夹创建组”,然后单击添加或按 Return。

如果您需要将现有文件移动到新组中,这不会为您节省太多,因为 Xcode 仍然不会这样做。
但是,如果您要创建一个新组来保存新文件,它确实会节省一些步骤。