2010-03-31 6 views
0

Je dois créer plusieurs fenêtres avant le chargement de NSDocument ou créer une fenêtre qui bloque la fenêtre NSDocument et le menu principal.Application basée sur documents, fenêtre de pré-initialisation (entrée série, achat, évaluation)

J'ai essayé plusieurs solutions - mais elles n'ont pas fonctionné correctement.

  1. fenêtre modale, l'une après l'autre. Il y avait quelques problèmes avec Async URLConnection, et quelques autres problèmes avec mon contenu NSDocument.

  2. J'ai créé le fichier MainMenu.xib personnalisé sans menu, ce qui ouvre mes fenêtres de pré-initialisation. ici j'ai trouvé quelques autres problèmes, quand un fichier (associé à mon application) est ouvert - la fenêtre de document initialise. Ici j'ai essayé de sous-classer NSDocumentController, mais je n'ai trouvé aucun moyen de mettre en pause le "document ouvert". (Je veux que le document soit ouvert de toute façon, mais seulement après que les fenêtres de préinitialisation soient fermées).

Alors, quelle est la bonne façon de procéder?

Répondre

0

Ainsi, la bonne réponse est de mettre en œuvre:
* application: openfiles:
* applicationShouldOpenUntitledFile:

et mettre en œuvre votre propre création de documents. c'est ainsi que cela a fonctionné pour moi.

 
MyDocument* document = [[MyDocument alloc] 
          initWithContentsOfURL:fileURL 
              ofType:[fileName pathExtension] 
              error:nil 
         ]; 
    if(document) 
    { 
    [[NSDocumentController sharedDocumentController] addDocument:document]; 
    [document makeWindowControllers]; 
    [document showWindows]; 
} 

Bien sûr, vous devez écrire un code de gestion des erreurs.

0

Mettez en œuvre applicationShouldOpenUntitledFile: dans le délégué de votre application pour renvoyer NO si l'utilisateur doit d'abord passer par la boîte de dialogue non enregistré. Dans les méthodes d'action de vos boutons "Trial" et "Confirm Registration", créez vous-même le document sans titre (en envoyant the necessary message au contrôleur de document).

+0

Qu'en est-il du chargement du document en double-cliquant sur les fichiers associés? comment verrouiller cela? et comment enregistrer l'URL pour l'ouvrir après une boîte de dialogue non encore enregistrée? – Remizorrr

+0

Implémenter 'application: openFiles:', aussi. Stash les chemins dans un tableau si le dialogue d'essai est en place, puis, quand il se termine (ou s'il est en panne), dites au contrôleur de document de les ouvrir pour de vrai. –

+0

si j'ai attrapé des fichiers via le délégué NSApplication (application: openFiles :). que dois-je faire dans ce cas pour ouvrir les fichiers thees plus tard avec mon NSDocument? (pour transférer cette action vers l'avant). – Remizorrr

Questions connexes