[AutoSave] sur NSDocument et NSTableView eventuellement
Gercofis
Membre
Soit un projet based Document classique,
Ou et comment j'utilise AutoSave, j'ai donné un nom a la fenetre dans IB...
J'ai lu aussi ici que je pouvais faire la même chose sur le NSTableView présent dans cette fenetre, si des fois les donnés étaient stockées aussi?
Merci
Ou et comment j'utilise AutoSave, j'ai donné un nom a la fenetre dans IB...
J'ai lu aussi ici que je pouvais faire la même chose sur le NSTableView présent dans cette fenetre, si des fois les donnés étaient stockées aussi?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
:-\\
Donc, si je comprend bien, ça n'enregistre que l'interface mais pas les données.
Bon, mauvaise nouvelle de ce côté là , les fenêtres d'applis multi-documents ne sauvegardent pas leur frame...:( Je l'ai pas lu dans la doc officielle, mais lu dans Cocoa Programming : "Document windows shouldn't save their frames in the user's defaults database. If every window saves its frame, the defaults database will become very large, and users have no easy way to remove window frames from their defaults database."
Oui, tout à fait, il serait en effet contraire au MVC design pattern qu'un objet de la couche View puisse recouvrir des fonctions d'un objet de la couche Model.
Une telle réponse me surprend, si je traduis, bien qu'un peu (même beaucoup!) fâché avec l' Anglais la remarque dit que l'utilisateur ne peut sauvegarder les données de ses fenetres documents dans les préférences utilisateurs, ce qui prendait une taille un peu énorme et aucun moyen simple pour retrouver celle-ci...
Mais pour une fenetre de préférence ça marche très bien et la methode suivante
[myWindow setFrameAutosaveName:@My Window];
suffit
Est-ce que ça fait double emploie avec l'inscription dans la zone AutoSave de IB ?
force: YES est falcultatif, il impose l'éventuel redimensionnement (en plus de la position) même pour une fenêtre déclarée comme non redimensionable.
Pour ce qui est des fenêtres de documents c'est faisable aussi mais:
- tu shuntes alors le windowManager qui normalement s'éfforce de disposer chaque fenêtre de document avec un léger décalage par apport à la précédente (c'est l'usage et c'est bien commode le plus souvent).
- Si tu veux enregistrer une position/dimension de fenêtre en fonction de chaque document, il faudrait donner un nom d'autosave différent pour chacun et surtout ça va rapidement être le merdier dans les prefs. Le mieux étant dans ce cas d'inclure la frame mémorisée dans l'entête de ton fichier document et de la restituer à la main (simple) à la lecture des documents. Le tout en fichant la paix aux fenêtres des nouveaux documents pour qu'elles gardent la frame par défaut définie dans IB.