2016-05-11 2 views

ответ

3

Вот как это сделать:

  1. Создать новый проект с раскадровки. Мы просто собираемся использовать его, чтобы скопировать одну маленькую вещь, которая не может быть найдена в библиотеке объектов.

  2. Назад в свой существующий проект, добавьте новый файл раскадровки ui (например, Main.storyboard) в существующий проект. В отличие от запуска нового проекта, файл раскадровки будет полностью пустым.

  3. Из раскадровки нового проекта скопируйте «Сцена приложения» и вставьте его в раскадровку существующего проекта. Это обходной путь из-за невозможности получить сцену приложения из библиотеки объектов. После этого убедитесь, что свойство «делегировать» объекта делегирования приложения имеет ссылку «Обращение» к «Приложению», просмотрев инспектор подключений (правая панель). Если это не так, соедините их вместе.

  4. В библиотеке объектов (правая боковая панель) ниже показана библиотека объектов, добавьте в контроллер окна. Это добавит сцену контроллера окон и сцену контроллера вида.

  5. Ссылка на соответствующие классы для контроллера окон/контроллера окна/представления/просмотра, если вы используете пользовательские классы.

  6. Откройте предыдущий файл xib и скопируйте его в любые виды, которые вы использовали раньше.

  7. В файле xcproj вашего существующего проекта перейдите в раздел информации для цели сборки и замените ключ/значение словаря xib на «NSMainStoryboardFile» для ключа и «Main» (или любой другой файл раскадровки был вызван sans fileextension) для значения.

Дополнительные примечания:

  • Если вы используете пользовательские viewcontrollers и миграции их в раскадровку, убедиться, что они позволяют быть init'ed через initWithCoder.

  • Если вам нужно получить viewcontroller из appdelegate, вы не можете сделать это с помощью методов instantiateWithName NSStoryboard, которые создадут новый экземпляр. Вместо этого сделайте следующее:

    NSApplication *application = [NSApplication sharedApplication]; 
    
    NSWindow *window = application.windows[0]; 
    
    self.myCustomViewController = (MyCustomViewController *)window.contentViewController; 
    
Смежные вопросы