2011-04-11 12 views
22

en mi solicitud que necesito para mostrar el cuadro de diálogo de selección de archivos, estoy haciendo uso de la NSOpenPanel que permite seleccionar el archivo, el código es como se muestra a continuación,¿Cómo cambio "Abrir" a "Seleccionar" en el NSOpenPanel?

- (IBAction)sendFileButtonAction:(id)sender{ 

    NSOpenPanel* openDlg = [NSOpenPanel openPanel]; 

    // Enable the selection of files in the dialog. 
    [openDlg setCanChooseFiles:YES]; 

    // Enable the selection of directories in the dialog. 
    [openDlg setCanChooseDirectories:YES]; 

    // Display the dialog. If the OK button was pressed, 
    // process the files. 
    if ([openDlg runModalForDirectory:nil file:nil] == NSOKButton) 
    { 
     // Get an array containing the full filenames of all 
     // files and directories selected. 
     NSArray* files = [openDlg filenames]; 

     // Loop through all the files and process them. 
     for(int i = 0; i < [files count]; i++) 
     { 
      NSString* fileName = [files objectAtIndex:i]; 
      [self log:fileName]; 

      // Do something with the filename. 
     } 
    } 

} 

todo funciona perfecto, pero estoy frente solo un problema, al abrir el archivo, muestra el botón Abrir y cancelar, ¿Hay alguna manera de cambiar el nombre del botón de abrir al botón "Seleccionar", o necesito usar algún otro recurso de cacao.

+2

Por cierto, la propiedad nombres de archivo se declara en desuso en OS X 10.6 –

+0

runModalForDirectory: file: tipos: está en desuso en OS X v10.6. Podría usar runModal en su lugar. Puede establecer la ruta usando setDirectoryURL :, y puede establecer fileTypes usando setAllowedFileTypes :. – Itachi

Respuesta

13

añadir esta línea:

[openDlg setPrompt:@"Select"]; 
+0

Gracias a su trabajo – Amitg2k12

+0

¿Hay alguna manera de que el nombre del archivo seleccione diplay en una etiqueta? ¿O una forma de seleccionar realmente el archivo y almacenarlo en la aplicación para acceder a él más tarde? ¡¡Gracias!! –

+0

Supongo que sí, en el marco obtendría una devolución de llamada, delegue para el nombre de archivo seleccionado y que podría usar para mostrarla sobre la etiqueta – Amitg2k12

3

Gracias mucho por las preguntas y respuestas. He reemplazado los métodos en desuso y parece funcionar bien. Lo sentimos, todavía no estamos seguros sobre la edición de respuestas de otras personas (nuevo para contribuir aquí).

- (IBAction)sendFileButtonAction:(id)sender{ 

    NSOpenPanel* openDlg = [NSOpenPanel openPanel]; 

    // Enable the selection of files in the dialog. 
    [openDlg setCanChooseFiles:YES]; 

    // Enable the selection of directories in the dialog. 
    [openDlg setCanChooseDirectories:YES]; 

    // Change "Open" dialog button to "Select" 
    [openDlg setPrompt:@"Select"]; 

    // Display the dialog. If the OK button was pressed, 
    // process the files. 
    if ([openDlg runModal] == NSModalResponseOK) 
    { 
     // Get an array containing the full filenames of all 
     // files and directories selected. 
     NSArray* files = [openDlg URLs]; 

     // Loop through all the files and process them. 
     for(int i = 0; i < [files count]; i++) 
     { 
      NSString* fileName = [files objectAtIndex:i]; 
      NSLog(@"file: %@", fileName); 
      // Do something with the filename. 
     } 
    } 
} 
Cuestiones relacionadas