Translate

martes, 24 de enero de 2012

Manejo de ventanas en XCode

Hoy vamos a por una taréa algo más básica pero también importante, como es el manejo de ventanas y como pasar de unas a otras. Para ello vamos a hacer una aplicación muy simple donde tendremos una ventana inicial desde la que podremos abrir una segunda. A su vez dentro de esta segunda tendremos un botón que permite cerrarla.


Empezamos  creando una aplicación que nos generará un .xib con su ventana inicial, le pondremos de nombre DosVentanas.





Sobre la ventana creada en el proyecto situaremos un label y un botón y lo configuramos como se muestra en la imagen.






Buscamos en el Object library un objeto NSWindow. Aparecerán varios tipos de ventana, cogemos uno de ellos. Le añadimos un label y un botón como se muestra en la siguiente imagen:






En este punto si ejecutamos el programa aparecerá primero la segunda ventana, y si la cerramos (ojo, el botón cerrar todavía no funciona), entonces aparecerá la ventana principal. Para corregir esto tenemos que usar dos propiedades de las ventanas: (Pulsar sobre la barra de título de la ventana y mostrar el Attributes Inspector)
·      Release when Closed, libera el espacio ocupado por la ventana al cerrarla, ya no se podrá usar mas. Hay que desmarcar esta opción si vamos a usar más veces la ventana. En nuestro ejemplo hay que quitarlo en la segunda ventana, la principal ya lo tendrá quitado por defecto.
·      Visible at Launch, indica si es visible o no cuando se lanzen las ventanas. En nuestro ejemplo dejaremos solo esta opción activada para la ventana principal, es decir la que queremos que se vea al inicio.






Si ejecutamos ahora el projecto ya se mostrará primero la pantalla inicial, pero al no funcionar los botones no podremos hacer que se muestre la segunda pantalla. Para ello lo primero que vamos a hacer será crear un Outlet de la ventana segunda. Para ello seleccionamos la ventana segunda (click sobre la barra de título), y con el CTRL pulsado arrastramos hacia el AppDelegate.h, y creamos un Outlet que se llame por ejmplo WSegunda. De esta manera ya podemos referenciar la segunda ventana desde cualquier parte del código.






De  la misma manera crearemos dos Action, una para el botón Abrir Segunda, y otra para el botón Cerrar ventana.






Completamos el código para cada botón en el AppDelegate.m, que quedaría de la siguiente manera



Y listo, si probamos a ejecutar podremos cambiar entre una ventana y otra usando los botones.

No hay comentarios: