Я пытаюсь отобразить пользовательское модальное диалоговое окно и делаю это следующим образом:
EncPasswordSheet имеет тип IBOutlet NSWindow *.
@implementation EncryptionPasswordSheet
-(id)init
{
return self;
}
- (void)showCustomDlg:(NSWindow *)window
{
if (!EncPasswordSheet)
{
[NSBundle loadNibNamed: @"EncryptionPasswordDlg" owner: self];
}
[NSApp beginSheet:EncPasswordSheet modalForWindow:window modalDelegate:nil didEndSelector:nil contextInfo:nil];
[NSApp runModalForWindow: EncPasswordSheet];
[NSApp endSheet: EncPasswordSheet];
[EncPasswordSheet orderOut: self];
}
- (IBAction)getPasswordFromSheet:(id)sender
{
password = [passwordField stringValue];
[NSApp stopModal];
}
- (IBAction)cancelEncPasswordSheet:(id)sender
{
password = nil;
[NSApp stopModal];
}
@end
Диалоговое окно отображается и принимает данные. При нажатии «ОК» или «Отмена» выполняются соответствующие методы IBAction, и программа продолжается. Проблема в том, что диалоговое окно не исчезает с пути - то есть оно не закрывается и не исчезает.