Mon application basée sur les documents comporte un menu Dock avec un élément "Nouveau document". Le menu du dock est fait dans Interface Builder, l'action de l'élément correspondant est connecté à -newDocument:
L'option de menu "Nouveau document" de l'application basée sur le document n'ouvre pas le nouveau document
de « First Responder Le contrôleur de document est une sous-classe de NSDocumentController
appelé DocumentController
.
Dans le délégué de l'application de ce code est utilisé pour empêcher l'ouverture d'un document sans titre lors de son lancement (au lieu du contrôleur de document ouvert panneau de s'affiche):
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
[(DocumentController *)[NSDocumentController sharedDocumentController] openDocument:self];
return NO;
}
Si je lance maintenant mon application, il va affiche le panneau ouvert au lieu d'un document sans titre. Si je clique ensuite sur l'élément «Nouveau document» du menu Dock, aucun nouveau document ne s'ouvre. Si je clique sur l'option de menu Fichier standard 'Nouveau document' dans le menu principal du modèle, un nouveau document s'ouvre.
Je ne peux pas penser à une raison pour laquelle c'est ainsi, pouvez-vous? Comment puis-je obtenir le menu Dock pour ouvrir un nouveau document?
EDIT: Here is a sample project which has no NSDocumentController subclass but still has the same problem.
qui ouvre le panneau ouvert à chaque fois que l'utilisateur souhaite créer un nouveau document. Ce que je veux accomplir est d'afficher un panneau ouvert au lancement, puis l'utilisateur peut cliquer sur 'Nouveau document' dans mon dock ou menu de fichier pour créer un document sans titre (tandis que le panneau ouvert disparaît). Tout fonctionne, sauf le menu Dock - pour une raison quelconque, il n'appelle jamais '-newDocument:' –
Votre exemple de projet fonctionne. Je clique sur l'icône du dock et j'appuie sur le nouveau document-> il ouvre une nouvelle fenêtre de document. Lorsque le panneau ouvert est affiché, il n'ouvre pas de nouvelle fenêtre parce que vous êtes dans un autre cycle (runloop de openpanel). –
Merci pour l'aide, lorsque le panneau ouvert est affiché, l'élément 'Fichier> Nouveau document' fonctionne mais l'icône équivalente que j'ai mise dans le dock ne fonctionne pas, est-ce dû à un autre cycle? –