Создание модального диалога или окна в Cocoa Objective-C?

Мне нужно создать модальное диалоговое окно, которое должно быть загружено из файла nib и должно отображаться при нажатии кнопки в главном окне.

Я могу создать пользовательское окно в файле nib и загрузить пользовательский диалог при нажатии кнопки, но это не модальный диалог. Я могу вернуться в главное окно.

MyWindowController является подклассом NSWindowController. Я использовал код ниже, чтобы отобразить мое окно в ответ на событие кнопки:

MyWindowController *pController = [[MyWindowController alloc] 
                                   initWithWindowNibName:@"nibfilename"];
[MyWindowController showWindow:self];

Ответы

Ответ 1

Существует несколько способов сделать это - и фактически два разных модальных диалога в OS X: прикладной-модальный и оконный-модальный. Использование неправильного человека будет раздражать людей. Один из них - это лист, который прикреплен к окну, на которое он воздействует (например, для этого служат save dialogs). Другое приложение-модальное, которое блокирует все приложение (открытые диалоги работают таким образом, так как они не применяются к любому существующему окну). Apple документация на листы должна помочь вам ориентироваться.

Ответ 2

Спасибо...

(пример). Создайте наконечник с именем "О"

if(pAbtCtrl == nil)
        pAbtCtrl = [[AboutWindowController alloc] initWithWindowNibName:@"About"];

pAbtWindow = [pAbtCtrl window];

[NSApp runModalForWindow: pAbtWindow];

[NSApp endSheet: pAbtWindow];

[pAbtWindow orderOut: self];