2011-05-19 9 views
8

Estoy trabajando en un proyecto que esencialmente crea archivos a través de un script de shell usando "sox". La aplicación no está basada en documentos, todo lo que hace es llamar a un script que crea archivos, y no guarda internamente ningún dato. Sin embargo, necesito pedirles a los usuarios dónde guardar el archivo y qué nombre de archivo usar antes de ejecutar el script. ¿Cuál sería la mejor manera de tener un cuadro de diálogo "guardar como ..." para que un usuario pase el archivo/nombre de archivo al script de shell?"Guardar como" en una aplicación no documentada Cocoa

Respuesta

21

Esto es bastante sencillo. Marcó esta pregunta con NSSavePanel y eso es exactamente lo que quiere usar.

- (IBAction)showSavePanel:(id)sender 
{ 
    NSSavePanel * savePanel = [NSSavePanel savePanel]; 
    // Restrict the file type to whatever you like 
    [savePanel setAllowedFileTypes:@[@"txt"]]; 
    // Set the starting directory 
    [savePanel setDirectoryURL:someURL]; 
    // Perform other setup 
    // Use a completion handler -- this is a block which takes one argument 
    // which corresponds to the button that was clicked 
    [savePanel beginSheetModalForWindow:someWindow completionHandler:^(NSInteger result){ 
     if (result == NSFileHandlingPanelOKButton) { 
      // Close panel before handling errors 
      [savePanel orderOut:self]; 
      // Do what you need to do with the selected path 
     } 
    }]; 
} 

Consulte también "The Save Panel" en la Guía de programación del sistema de archivos.

Cuestiones relacionadas