cocoa macos objective-c++ nsopenpanel

cocoa - ¿Cómo cambio "Abrir" a "Seleccionar" en NSOpenPanel?



macos objective-c++ (2)

En mi aplicación, necesito mostrar el diálogo de selección de archivos, estoy haciendo uso del NSOpenPanel que permite seleccionar el archivo, el código es como se muestra a continuación

- (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 a la perfección, pero me enfrento a un solo problema, al abrir el archivo, muestra el botón Abrir y Cancelar. .


Añade esta línea:

[openDlg setPrompt:@"Select"];


Muchas gracias por la pregunta y las respuestas. He reemplazado los métodos obsoletos y parece funcionar bien. Lo sentimos, todavía no estoy seguro acerca de cómo editar las respuestas de otras personas (es 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. } } }