Attendre [NSAlert beginSheetModalForWindow:...];

Lorsque j'affiche une NSAlert de cette façon, j'obtiens la réponse tout de suite:

int response;
NSAlert *alert = [NSAlert alertWithMessageText:... ...];
response = [alert runModal];

Le problème est que c'est l'application de modal et de ma demande de document de base. Je l'affichage de l'alerte dans le document en cours de la fenêtre par l'aide de feuilles, comme ceci:

int response;
NSAlert *alert = [NSAlert alertWithMessageText:... ...];
[alert beginSheetModalForWindow:aWindow
                  modalDelegate:self
                 didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
                    contextInfo:&response];

//elsewhere
- (void) alertDidEnd:(NSAlert *) alert returnCode:(int) returnCode contextInfo:(int *) contextInfo
{
    *contextInfo = returnCode;
}

Le seul problème, c'est que beginSheetModalForWindow: retourne tout de suite j'ai donc fiable ne peut pas demander à l'utilisateur une question et attendre une réponse. Ce ne serait pas une grosse affaire si je pouvais diviser la tâche en deux zones, mais je ne peux pas.

J'ai une boucle qui traite environ 40 différents objets (qui sont dans un arbre). Si un objet ne parvient pas, je veux l'alerte de montrer et de demander à l'utilisateur s'il veut continuer ou abandonner (poursuivre le traitement à la branche courante), mais depuis mon application est le document de base, la Pomme Human Interface Guidelines dicter à l'utilisation des feuilles lorsque l'alerte est spécifique à un document.

Comment puis-je afficher l'alerte fiche et attendre une réponse?

InformationsquelleAutor dreamlax | 2009-03-03