Настройка проекта Xcode для добавления нового файла в пользовательский каталог

Как я могу настроить проект Xcode так, чтобы он создавал новые файлы классов (.h/.m) в каталоге Classes и новые файлы интерфейса (.xib/.nib) в каталоге Interfaces?

По умолчанию Xcode добавляет новые файлы в корневой каталог проекта, и мне приходится вручную помещать их в каталоги классов и интерфейсов.

Edit:

Я имею в виду параметр Xcode File > New File.... Я хочу, чтобы новые файлы, созданные из проекта Xcode, автоматически перемещались в соответствующие каталоги, например..h/.m автоматически создаются в каталоге Classes, а .xib автоматически создаются в каталоге Interfaces и т.д. И я имею в виду физические каталоги, а не Xcode "Группы".

Ответ 1

Я предполагаю, что вы создали группу (папку) под названием Classes или что-то вроде этих строк внутри проекта Xcode. Выберите его и сделайте Command + я (или щелкните его правой кнопкой мыши и выберите "Получить информацию" ). Измените параметр "Путь" на то место, где вы хотите создать файлы.

Обратите внимание, что это повлияет только на файлы, созданные на нем. Создание их в другом месте, а затем перемещение их в эту группу не приведет к их перемещению в каталог.

EDIT. Вышеупомянутый ответ относится к Xcode 3. В Xcode 5 вам нужно будет выбрать логическую группу в Навигаторе проектов (первая вкладка навигатора, вызвать ее с помощью ⌘1), а затем осмотрите его с помощью File Inspector (первая вкладка утилиты, поднимите ее с помощью ⌥⌘1). Физическую папку по умолчанию для всех новых файлов можно изменить, щелкнув значок папки ниже раскрывающегося меню Расположение.

Ответ 2

В Xcode 5 автоматически выбирается папка по умолчанию на диске, соответствующая папке проекта на боковой панели для определенных папок, и можно вручную установить эту ссылку.

В моем проекте у меня есть группы боковых панелей для AppName, AppNameTests, и я создал себя под названием Shared Components. Когда я выбираю группу AppName на боковой панели и создаю класс, диалог "Сохранить" автоматически перебирается в подкаталог AppName внутри верхнего уровня AppName на диске и делает то же самое для классов, созданных внутри AppNameTests.

Мне не удалось заставить Xcode имитировать это поведение с моей настраиваемой группой боковых панелей Shared Components, несмотря на наличие папки Shared Components на диске, но я понял, как ее принудить!

Xcode просто нужно было знать, что папка на диске - это то, о чем моя группа боковых панелей. Для этого:

  • Откройте папку проекта в Finder
  • Перетащите папку, которую вы хотите связать в боковой панели, в организатор проекта.
  • Когда Xcode представляет диалог "Добавить файлы", выберите "Создать группы для любых добавленных папок". (Это параметры диалога, которые я выбрал:

add files dialog

Теперь, когда я выбираю эту группу боковых панелей и создаю файл, диалог "Сохранить" начинается в папке, которую я перетащил в боковую панель проекта. Победа!

Изменить: я обнаружил ключи, которые Xcode использует в файле project.pbxproj для этого: если вы измените папку name на path, т.е.

path = "Shared Components";

что в основном делает Xcode, когда вы добавляете папку в проект в качестве ссылки на группу. (Вы также можете использовать клавиши name и path, если вы хотите, чтобы боковая панель name отличалась от на диске path.)