Demande pour sauver avant de quitter

frolfrol Membre
07:24 modifié dans API AppKit #1
Bonjour
Je fais une petite application de type "document-based" et j'ai un petit problème au moment de quitter ou de fermer le document il ne me demande pas si je veux le sauver.

Comment puis-je changer ça

Merci d'avance pour votre aide

Frol

Réponses

  • CéroceCéroce Membre, Modérateur
    07:24 modifié #2
    Il faut que tu gères l'Undo.

    Tu peux remarquer que ton document n'est pour l'instant jamais considéré comme modifié: le bouton de fermeture rouge de la fenêtre n'est jamais rempli.
  • frolfrol Membre
    07:24 modifié #3
    ok je regarde par la un grand merci
  • mpergandmpergand Membre
    07:24 modifié #4
    Basiquement, il suffit d'ajouter:

    -(BOOL) isDocumentEdited<br />{<br />	return YES;<br />}
    


  • Philippe49Philippe49 Membre
    07:24 modifié #5
    Et pour une gestion personnalisée au niveau général, les méthodes applicationShouldTerminate: et applicationWillTerminate :

    @implementation AppDelegate

    - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
    NSInteger returnCode=NSRunAlertPanel(@Application will quit,@Do you want to see the documents, @YES,@NO,nil);
    // do what you want to do
    return NSTerminateNow;
    }

  • schlumschlum Membre
    07:24 modifié #6
    dans 1232439726:

    Il faut que tu gères l'Undo.

    Tu peux remarquer que ton document n'est pour l'instant jamais considéré comme modifié: le bouton de fermeture rouge de la fenêtre n'est jamais rempli.


    Pas besoin de gérer l'undo... Il suffit d'utiliser :
    "- (void)updateChangeCount:(NSDocumentChangeType)changeType"

    [theDoc updateChangeCount:NSChangeDone];
    
  • CéroceCéroce Membre, Modérateur
    07:24 modifié #7
    Au temps pour moi... il n'est pas obligatoire de gérer l'Undo.

    Mais ça reste quand même la solution normale: s'il n'y a pas d'action à  annuler, alors le document n'est pas édité et il n'y a pas lieu de demander à  enregistrer.
  • frolfrol Membre
    07:24 modifié #8
    merci beaucoup
    j'ai pris la solution la plus simple

    -(BOOL) isDocumentEdited<br />{<br />	return YES;<br />}
    


    mais promis quand je serai un peu a l'aise je gérerai l'undo
  • AntilogAntilog Membre
    07:24 modifié #9
    Attention!

    En faisant ainsi, tu auras systèmatiquement une demande de sauvegarde, même si ton document n'a pas été modifié (et même si c'est un nouveau document vierge!)

    Tu devrais au moins conditionner la réponse à  une action utilisateur modifiant le document, IMHO.
Connectez-vous ou Inscrivez-vous pour répondre.