2015-08-12 6 views
1

У меня возникли трудности с определением того, как минимизировать приложение при его запуске и отображает NSAlert.Сохранить окно Какао Минимизировано, когда приложение отображает NSAlert

Короче говоря, у меня есть приложение, которое передает данные, и оно отображает NSAlert при завершении передачи. Если приложение сведено к минимуму, я хочу, чтобы он оставался таким, даже несмотря на то, что он отображает NSAlert.

я называю NSAlert с (в Swift):

alert.beginSheetModalForWindow(self, completionHandler: handler) 

Но окно unminimizes себя, когда этот код срабатывает. Если окно уже не сведено к минимуму, оно не захватывает фокус или ничего неожиданного (именно так я его и хочу).

Есть ли способ сделать это? Благодаря!

+0

Поведение NSAlert такое. Мое предложение состоит в том, что вы можете использовать NSUserNotification в этом случае –

+0

Не было бы лучше использовать NSAlert, не привязанный ни к чему, если его окно минимизировано? – MrAsterisco

ответ

0

Вы можете попытаться отложить отображение NSAlert.

Поместите свой код предупреждения в метод. Когда есть триггер для вызова этого метода, проверьте, видимо ли ваше окно. Если да -> вызывают этот метод. Если нет -> запланировать NSTimer, который будет срабатывать через секунду и вызвать пользовательский метод, чтобы проверить, отображается ли окно (ДА -> показать предупреждение, NO -> таймер расписания).

FYI: NSAlert при отображении в виде листа создает экземпляр NSPanel, который является подклассом NSWindow.

Смежные вопросы