我喜欢在Xcode 4项目导航器窗格中将我的类组织成组。我也通过终端使用GIT版本,这对我来说比Xcode 4集成更好。对我来说,当我在Xcode中创建的组对应于我的文件系统上的真实文件夹时,它是最有意义的。
但是,Xcode似乎并不关心文件系统中文件(例如Objective-C .h / .m文件)的位置,每次添加组(Option+Command+N
)时,它都是纯粹的装饰性的,您放在那里的任何文件将与其他文件在硬盘上共享相同的位置。
奇怪的是,如果您首先在硬盘驱动器上创建一个文件夹,然后将其拖到Xcode,那么您已经在文件系统上创建了一个具有自己位置的组。您在其中创建的每个文件都将在磁盘上的文件夹中创建。我很喜欢,但如果Xcode会在Option+Command+N
为我做这件事,我会更喜欢它。为您想要创建的每个组切换到Finder,然后将其拖回到项目导航器中的正确位置的工作流程非常愚蠢。
感觉就像设置会修复,但我找不到它!还有更好的方法吗?
更新:将文件夹拖到Xcode时,您将看到一个对话框窗口,您可以在其中选择“文件夹参考”。这看起来很有希望,但是我的Xcode 4不接受那里的文件作为类,并一直告诉我它找不到任何文件。也许答案就在这里,但我仍然找不到它。
另一个更新:我已将主编辑器环境从Xcode更改为AppCode。后者支持实际创建文件夹以支持项目组,同时保持与Xcode的100%兼容性。那些AppCode的人肯定知道他们在做什么。
答案 0 :(得分:122)
以下介绍Xcode 9及更高版本。
从Xcode 9开始,当你在项目中创建一个组时,Xcode可以自动创建一个文件系统文件夹。
在项目导航器中右键单击(或按住Control键单击)时,上下文菜单将包含“新建组”菜单项和 “带有文件夹的新组”菜单项< strong>或“没有文件夹的新组”菜单项。
如果Xcode提供“New Group”和“New Group with Folder”,则“New Group”会创建一个没有文件夹的组。
如果Xcode提供“新组”和“没有文件夹的新组”,则“新组”会创建一个包含文件夹的组。
换句话说,就创建文件夹而言,“新组”总是与其他(显式)菜单项相反。
如果您重命名一个组,并且该组具有相同名称的相应文件夹,Xcode 9也会重命名该文件夹。
在Xcode 9中,如果您将文件从一个组拖到另一个组,并且这些组具有不同的文件夹,则Xcode 9会将文件移动到新组的文件夹,无论新组的文件夹是否与该组具有相同的名称
如果不希望在Xcode 9中出现此行为,则可以从命令行设置未记录的设置:
defaults write com.apple.dt.Xcode IDEDisableStructureEditingCoordinator -bool YES
Xcode决定是否显示“New Group”和“New Group with Folder”,或“New Group”和“New Group without Folder”并不是很明显。 2018年WWDC上的Apple工程师(我认为他的名字是Paul)查看了Xcode源代码并向我解释了这一点:
基本上,Xcode会根据未来的兄弟姐妹是否有自己的文件夹来猜测你的新组是否应该拥有自己的文件夹。
您可以直接在Xcode中创建一个带有自己文件夹的新组,但这一点并不明显。
不要选择“新组”,而是选择“将文件添加到”&lt; Project&gt;“'。然后,在文件选择器对话框中,单击“新建文件夹”按钮或按Command-Shift-N并键入新文件夹/组的名称。然后,确保选择“为任何添加的文件夹创建组”,然后单击“添加”或按“返回”。
如果您需要将现有文件移动到新组中,这不会为您节省太多,因为Xcode仍然不会这样做。
但如果您要创建一个新组来保存新文件,它确实可以节省一些步骤。
答案 1 :(得分:36)
答案 2 :(得分:5)
看看andyvn22的回答here
用来解释:
然后,您需要手动将磁盘上的所有现有文件移动到新文件夹。
在我的Xcode4项目中试过这个,就像一个魅力。