Создание модального диалога или окна в 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];