Приложение на основе документа, окно предварительной инициализации (введите серийный номер, купите, пробную версию)
-
23-09-2019 - |
Вопрос
Мне нужно создать несколько окон перед загрузкой NSDocument или создать окно, которое блокирует окно NSDocument и верхнее меню.
Я попробовал несколько решений, но они не сработали.
модальное окно, одно за другим.были некоторые проблемы с Async URLConnection и некоторые другие проблемы с моим содержимым NSDocument.
Я создал собственный файл MainMenu.xib без меню, который открывает мои окна предварительной инициализации.здесь я обнаружил некоторые другие проблемы: когда открывается файл (связанный с моим приложением), инициализируется окно документа.Здесь я попытался создать подкласс NSDocumentController, но не нашел способа приостановить «открытый документ».(я хочу, чтобы документ в любом случае открывался, но только после закрытия окон предварительной инициализации).
Так как же правильно это сделать?
Решение 2
Итак, правильный ответ — реализовать:
* приложение: openFiles:
* ПриложениеShouldOpenUntitledFile:
и реализовать собственное создание документов.вот так это сработало для меня.
MyDocument* document = [[MyDocument alloc] initWithContentsOfURL:fileURL ofType:[fileName pathExtension] error:nil ]; if(document) { [[NSDocumentController sharedDocumentController] addDocument:document]; [document makeWindowControllers]; [document showWindows]; }
конечно, вам нужно написать код обработки ошибок.
Другие советы
Осуществлять applicationShouldOpenUntitledFile:
в вашем делегате приложения для возврата NO
если пользователю сначала нужно пройти через диалоговое окно «еще не зарегистрирован».
В методах действий для кнопок «Пробная версия» и «Подтвердить регистрацию» самостоятельно создайте безымянный документ (отправив необходимое сообщение контролеру документов).