¿Cómo hago que mi programa espere a que se cierre el nsopenpanel?
-
27-10-2019 - |
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?
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