Создание многооконной программы какао - предложения по запуску процедуры? - PullRequest
0 голосов
/ 30 мая 2010

Я портирую приложение, разработанное в Visual Studio 2008, на Cocoa. В настоящее время я использую подход «учимся по ходу дела» к Какао, поэтому я могу экспериментировать с различными идеями и техниками в небольших и простых проектах и ​​в конечном итоге объединить их в одно большое приложение.

Моя программная логика выглядит следующим образом (в упрощенном смысле). Пункты в списке уполномочены моим боссом.

  1. Приложение запущено 1a. Убедитесь, что программа CD находится в приводе.
  2. Подтвердите лицензию. Если он найден и действителен, перейдите к шагу 7
  3. Показать лицензионное соглашение.
  4. Отображение запроса серийного номера.
  5. Проверьте и сохраните серийный номер.
  6. Скрыть все предыдущие окна.
  7. Загрузить главное окно приложения
  8. Перехват запросов и команд из главного окна приложения, включая создание дубликата главного окна приложения
  9. Выход из программы по запросу пользователя

Какой будет лучшая ставка для этого типа приложения? Из другого вопроса, который я задал, я узнал, что я должен держать окно «основного приложения» в отдельном файле XIB, потому что мне может понадобиться клонировать и взаимодействовать с ним.

Я знаю, что поскольку Cocoa и Objective-C основаны на C, где-то есть метод Main. Но что бы вы предложили в качестве отправной точки для такого приложения?

1 Ответ

1 голос
/ 30 мая 2010

Так что часть этого сводится к организации. Как упоминалось Жюльеном, вам понадобится класс YouappnameApplicationDelegate - фактически, Xcode создаст и настроит его для вас при создании проекта.

реализовать метод applicationDidFinishLaunching (который также должен быть предоставлен тем, что вам дал XCode), и реализовать вашу логику для шагов 1 и 2 (и шагов 7, 8, 9).

Шаги с 3 по 5, которые вы, вероятно, захотите реализовать в другом классе. RegistrationWindowController или что-то в этом роде. Вы можете даже захотеть создать это окно в другом файле пера (не в файле MainMenu.nib, который дает вам Xcode). В методе applicationDidFinishLaunching YouappnameApplicationDelegation вы загрузите этот кончик (см. Пример кода ниже). Таким образом, ваш код будет хорошо организован - это то, чем действительно руководствуется Какао.

Хорошо, теперь, как загрузить этот новый файл пера:

myInstanceVariable = [[RegistrationWindowController alloc] initWithWindowNibName: @"MyNibName"];
[myInstanceVariable showWindow: self];

RegistrationWindowController должен быть подклассом NSWindowController.

Это займет у вас довольно долгий путь в ваших исследованиях, надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...