Может ли приложение Mac нарисовать до завершения запуска? - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь показать заставку в applicationWillFinishLaunching:, но на самом деле он не появляется до applicationDidFinishLaunching: секунд спустя. Я сделал все, что мог придумать, чтобы он появился:

[NSApp activateIgnoringOtherApps: YES];
[splashWindow orderFrontRegardless];
[splashWindow display];
[[splashWindow graphicsContext] flushGraphics];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];

Теперь удаленный ответ предложил позвонить [CATransaction flush], и я попробовал это, но это не сработало.

Полагаю, я мог бы подождать до applicationDidFinishLaunching:, чтобы даже начать инициализацию, но я хочу убедиться, что приложение не начинает открывать документы, пока все не будет готово.

(Этот аналогичный вопрос имеет принятый ответ, который не отвечает на вопрос так часто, как его избегает. Другой аналогичный вопрос имеет принятый ответ, который в основном просто говорит, чтобы показать окно в applicationWillFinishLaunching:, что является именно тем, что мне не удается. Это было написано в 2009 году, может быть, поведение сейчас другое.)


Новая подсказка: если я запускаю приложение в Xcode, используя опцию «Запустить приложение без восстановления состояния», то всплывающее окно появляется раньше.

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