2010-11-12 9 views
0

J'ai créé un NSWindow avec un PDFView dans le fichier xib, je créé un contrôleur appelé MainController, là, je créé un IBAction -(IBAction) openFileAction:(id) sender, il utilise la méthodeSet Document à pdfview dans le constructeur du contrôleur

-(void) openFile:(NSString *) path{ 
    NSLog(@"Opening File %@",path); 
    PDFDocument *pdfDoc = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:path]]; 
    [pdfView setDocument: pdfDoc]; 
} 

I lié l'élément de menu ouvert à openFileAction et le fichier pdf est affiché correctement dans PDFView après le clic.

que je fais une logique pour recevoir un argument de ligne de commande

-(MainController *) init{ 
    [super init]; 
    NSArray *myArgs = [[NSProcessInfo processInfo] arguments]; 
    NSLog(@"pdf view %@", pdfView); 
    if ([myArgs count] >= 2){ 
    [self openFile:[myArgs objectAtIndex:1]]; 
    } 

    return self; 
} 

Comme vous pouvez le voir, je l'ai fait un remplacement dans le constructeur par défaut et dans ce contexte, le pdfview est NULL, le fichier est ouvert après l'application/chargement de la fenêtre principale.

Ma question est, comment puis-je ouvrir un pdf dans un PDFView après le chargement de l'application? Y at-il un crochet à utiliser après le chargement de l'interface utilisateur?

Répondre

0

Si vous souhaitez effectuer cette opération lorsque votre fenêtre PDFView est ouverte, utilisez la fonction windowDidLoad dans votre MainController plutôt que d'essayer de la charger dans init.

0

Merci slycrel mais windowDidLoad est un rappel de NSWindowController. J'ai trouvé la solution par moi-même, le secret est

- (void) awakeFromNib{ 
//Do something after initialize UI components 
} 

Tout le meilleur.

Questions connexes