Hay dos cosas aquí.
Primero, debe configurar y mostrar una alerta. Luego, ejecuta la alerta ‘modalmente’ (ya sea la aplicación modal o como una hoja en otra ventana), y el botón en el que se hizo clic vuelve al código de llamada como un valor que representa el botón en el que se hizo clic para descartar la alerta.
Todo eso está envuelto por el objeto NSAlert; por ejemplo, puede llamar a su método -runModal que devuelve el valor del botón en el que se hizo clic como un tipo NSModalResponse.
- ¿Qué posibilidades hay de que gane más de $ 50 al año haciendo una aplicación a los 15?
- ¿Cuáles son las 5 mejores aplicaciones de software de mensajería instantánea?
- ¿Cuál es el mejor software de seguimiento de tiempo para el trabajo de consultoría por hora, especialmente uno basado en la web?
- ¿Existe un programa para crear personajes de anime en 3D prefabricados utilizando activos prefabricados, como lo haría en un menú de creación de personajes de videojuegos?
- ¿Cuánto tiempo puede una grabadora de voz en un registro de Android?
La segunda parte es responder al botón haciendo algo, en este caso finalizar la aplicación. Esto requiere el uso de un objeto diferente: NSApplication, que representa la aplicación completa. Tiene un método de clase + SharedApplication, que devuelve la única instancia del objeto que existe. Entonces puede llamar a su método -terminate:.
Este es un ejemplo simple del concepto de diseño MVC (Modelo-Vista-Controlador). En este caso, NSApplication es el modelo, NSAlert es la vista, y el código que escribe que muestra la alerta y responde a los botones es el controlador. MVC se aplica estrictamente en todos los marcos de Cocoa, por lo que utiliza dos objetos diferentes para lograr lo que desea aquí. Entonces, la respuesta estricta a su pregunta “¿Cómo finalizo una aplicación a través de NSAlert?” Es que no lo hace: no se puede hacer un NSAlert para hacer eso. En su lugar, escribe un controlador que muestra la alerta y luego llama al objeto modelo para que haga algo de acuerdo con las acciones del usuario.