Pregunta

Como el título dice, necesito hacer que mi programa espere hasta mi NSOpenPanel cierra. Tengo el panel abierto windowControllerWillLoadNib para que suceda antes de que se abra mi ventana de documento. Pero lo que sucede es que solo carga ambas ventanas sin esperar a que el panel se cierre. ¿Cómo puedo hacer que esperar hasta que el panel abierto esté cerrado y completamente terminado?

¿Fue útil?

Solución

Use el método RunModal.

Ejemplo de código:

int result;
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
result = [oPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil];
if (result == NSOKButton) {
//your code
}

Otros consejos

Configure su panel abierto y luego puede hacer algo como esto:

if ([openPanel runModal]==NSFileHandlingPanelOKButton) {
    // get the urls
    NSArray *fileURLs = [openPanel URLs];
} else {
    // cancel button was clicked
}

RunModal detiene la ejecución de su programa hasta que se cierre el panel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top