2010-12-04 37 views

Répondre

3

Exécutez-le comme une fenêtre modale au lieu d'une feuille.

+0

parfait, qui est exactement ce que je avais besoin. – David

1

Dans votre méthode de l'élément de l'état IBAction, appelez ceci:

window = [[NSApp currentEvent] window]; 

Vous pouvez alors passer cette fenêtre au beginSheetModalForWindow de NSOpenPanel: completionHandler: pour afficher le panneau ouvert comme une feuille.

Vous pouvez constater que l'élément d'état lui-même s'enroule et disparaît à mesure que la feuille apparaît, mais il réapparaît lorsque vous fermez la feuille.

0

Vous pouvez simplement appeler votre panneau ouvert de l'action de NSMenuItem comme:

NSOpenPanel *panel = [NSOpenPanel openPanel]; 
    [panel setAllowsMultipleSelection:YES]; 
    [panel setCanChooseDirectories:YES]; 

    NSUInteger result = [panel runModal]; 
    NSMutableArray *paths = [NSMutableArray array]; 

    if(result == NSFileHandlingPanelOKButton) { 
     for (NSURL *url in [panel URLs]) { 
      NSLog(@"%@", url); 
     } 
    }