【问题标题】:Showing 2 sheets/panels - one-after-the-other显示 2 张纸/面板 - 一个接一个
【发布时间】:2013-08-19 10:02:37
【问题描述】:

我正在尝试一个接一个地显示 2 张(面板)。但是,第一张纸似乎没有足够的时间在第二张纸出现之前关闭 - 所以,它最终变得一团糟。

这是我的代码...

#define DRK_ALERT_YESNO_SHOW(X,Y,W) \
NSAlert* yesnoAlert = [NSAlert alertWithMessageText:X \
defaultButton:@"Yes" \
alternateButton:@"No" \
otherButton:nil \
informativeTextWithFormat:Y]; \
[yesnoAlert beginSheetModalForWindow:[[NSApp delegate] window] \
modalDelegate:self \
didEndSelector:W \
contextInfo:nil];

// Open File Sheet

#define DRK_OPENFILE_SHEET_BEGIN(X,Y,Z,A) NSOpenPanel *openPanel = [NSOpenPanel openPanel];\
[openPanel setAllowsMultipleSelection: NO];\
[openPanel setCanChooseDirectories:NO];\
[openPanel setCanCreateDirectories:NO];\
[openPanel setCanChooseFiles:YES];\
[openPanel setShowsHiddenFiles:YES];\
[openPanel setPrompt:Y];\
[openPanel setAllowedFileTypes:A];\
[openPanel beginSheetModalForWindow:X completionHandler:^(NSInteger result) {\
    if (result == NSFileHandlingPanelOKButton) {\
        NSString* Z = [openPanel filename];

#define DRK_OPENFILE_SHEET_END }\
}];

实际代码

- (IBAction)openDo:(id)sender {

    DRK_ALERT_YESNO_SHOW(@"Are you sure you want to discard changes?",
                         @"You may lose any changes you have made to your current projects.",
                         @selector(shouldOpenDo:code:context:));

}

- (void)shouldOpenDo:(NSAlert*)alert code:(int)choice context:(void *)context
{
    if (choice==NSAlertDefaultReturn)
    {
        DRK_OPENFILE_SHEET_BEGIN(([[NSApp delegate] window]), @"Open Project", filename,(@[@"txt"]));

        // Yep, we can now open the file: filename

        DRK_OPENFILE_SHEET_END
    }
    else
    {
        // nope, don't open anything
    }
}

有什么想法吗?

【问题讨论】:

    标签: objective-c cocoa nsalert


    【解决方案1】:

    好的,这就是全部:

    [[alert window] orderOut:nil];
    

    就在DRK_OPENFILE_SHEET_BEGIN之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 2010-10-25
      • 1970-01-01
      • 2012-03-17
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多