我想顯示自定義模式對話框,並做了以下方法:模態定製表不打烊
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
正在顯示對話框並接受輸入。在按下「ok」或「cancel」時,相應的IBAction方法正在執行並且程序繼續。問題在於對話框並未避開 - 即沒有關閉或消失。
您可能需要重新格式化代碼以使其更易於理解。用四個空格縮進來將一些文本格式化爲代碼。 – jergason 2009-08-27 22:06:07