2011-05-06 2 views
1

J'ai une table avec les boutons + classiques en dessous. (sur mac) Je veux appuyer sur le bouton +, et ouvrir un petit chercheur pour sélectionner un fichier, pour l'ajouter sur la table.Ajouter un élément du chercheur

Comment puis-je faire cela? J'ai recherché la référence du développeur, mais je ne l'ai pas trouvée ..

Répondre

2

Utilisez NSOpenPanel.

Pour un guide sur le traitement des fichiers et l'utilisation des panneaux ouverts, voir le guide Application File Management.

Par exemple:

- (IBAction)addFile:(id)sender 
{ 
    NSInteger result; 
    NSArray *fileTypes = [NSArray arrayWithObject:@"html"]; 
    NSOpenPanel *oPanel = [NSOpenPanel openPanel]; 

    [oPanel setAllowsMultipleSelection:YES]; 
    [oPanel setDirectory:NSHomeDirectory()]; 
    [oPanel setCanChooseDirectories:NO]; 
    result = [oPanel runModal]; 

    if (result == NSFileHandlingPanelOKButton) { 
     for (NSURL *fileURL in [oPanel URLs]) { 
      // do something with fileURL 
     } 
    } 
} 

Un autre exemple en utilisant une feuille:

- (IBAction)addFile:(id)sender 
{ 
    NSArray *fileTypes = [NSArray arrayWithObject:@"html"]; 
    NSOpenPanel *oPanel = [NSOpenPanel openPanel]; 

    [oPanel setAllowsMultipleSelection:YES]; 
    [oPanel setDirectory:NSHomeDirectory()]; 
    [oPanel setCanChooseDirectories:NO]; 
    [oPanel beginSheetModalForWindow:[self window] 
     completionHandler:^(NSInteger result) { 
     if (result == NSFileHandlingPanelOKButton) { 
      for (NSURL *fileURL in [oPanel URLs]) { 
       // do something with fileURL 
      } 
     } 
    }]; 

} 
+0

grâce, mais celui-ci fait une nouvelle fenêtre. Je voudrais celui qui glisse du haut .. Vous savez ce que je veux dire? Je ne sais pas comment ça s'appelle. – pvinis

+0

@pvinis Vous voulez une feuille, alors. Au lieu de '-runModal', utilisez' - beginSheetModalForWindow: completionHandler: '. –

+0

@pvinis J'ai édité la réponse et inclus un exemple en utilisant une feuille. –

Questions connexes