Создание безмодального диалогового окна для Parenet или MessageBox или листов оповещения в какао? - PullRequest
1 голос
/ 15 декабря 2009

Issue1: Я хочу показать окно предупреждения или окно сообщения перед запуском главного окна приложения. Когда я использую NSRunAlertPanel (), он не показывает окно предупреждения. Он непосредственно запускает главное окно приложения.

Issue2: Я хочу создать модальные окна (диалог входа в систему) и окна сообщений в потоке, связанном с основным потоком.

Срочно

Итак, пожалуйста, ответьте в ближайшее время ...

Спасибо, Прадип.

Ответы [ 2 ]

3 голосов
/ 15 декабря 2009

Issue2: я хочу создать модальные окна (диалог входа в систему) и окна сообщений в потоке, охватываемом из основного потока.

В Какао почти весь код пользовательского интерфейса должен выполняться в главном потоке. Есть несколько ограниченных, четко определенных исключений (например, потоковый чертеж с подпиской, представленный в Snow Leopard), но общее правило - не запускать код пользовательского интерфейса в другом потоке.

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

Отправьте NSApp сообщение runModalForWindow:, передав диалоговое окно. Это запустит диалог в главном потоке, блокируя остальную часть вашего пользовательского интерфейса. Если вы не хотите блокировать пользовательский интерфейс (как правило, не следует), просто сделайте его ключевым и разместите его как обычно.

0 голосов
/ 15 декабря 2009

Что вы можете сделать, это:

  • снимите флажок «Видимо при запуске» для главного окна в Интерфейсном Разработчике.
  • запустите ваше приложение как обычно
  • решить, показывать или нет модальное диалоговое окно
  • вызвать сообщение "orderFront:" главного окна.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...