1

私のココア プログラムには保存機能があり、ユーザーが保存先を選択すると、別の NSPanel を起動して何らかのステータス (つまり、ファイルの保存が完了するまでにかかる時間) を表示する必要があります。これが私のコードです。 :

- (IBAction)savePressed:(id)sender {
    __block NSSavePanel *saveDlg = [NSSavePanel savePanel];
    // Enable options in the dialog.
    [saveDlg setCanCreateDirectories:YES];
    [saveDlg setAllowedFileTypes:[NSArray arrayWithObject:@"zip"]];
    [saveDlg setCanSelectHiddenExtension:YES];
    [saveDlg beginSheetModalForWindow:self.window completionHandler:^ (NSInteger result) {
        if (result == NSOKButton) {
            [self triggerNSPanel];
        }

        saveDlg = nil;

    }];

}

- (void) triggerNSPanel {
    if (!self.myPanel)
        self.myPanel = [[NSPanel alloc] init];
    [NSApp beginSheet:self.myPanel modalForWindow:self.window modalDelegate:nil didEndSelector:nil contextInfo:nil];
....
}

したがって、NSSavePanel が消えると (つまり、[OK] が押されると)、NSApp endSheet を呼び出さなくても、NSPanel が 1/2 秒間表示されます。

4

1 に答える 1