Translate

viernes, 10 de febrero de 2012

XCode: Más Ventanas / More Windows


Con este ejemplo vamos a ver la forma en que trabajar con varias ventanas en nuestra aplicación usando un xib/nib para cada ventana. Para ello tendremos una ventana inicial que incluirá un botón que abrirá una segunda ventana.

Whit this example we are going to see the way to work with different windows in our application, using one xib/nib for each window. The example application would have a main window with one button. This button will open a second window.

Creamos un proyecto que llamaremos “twoWindows”. En la ventana principalal añadiremos un botón que llamaremos “Abrir Segunda Ventana”.
De este botón crearemos un Action arrastrando con ctrl pulsado desde el botón mencionado hasta el fichero AppDelegate.h, llamando a dicha Action “mostrarSegunda”, después implementaremos el código necesario para esta Action.
Una vez creado el proyecto tendremos creada una primera ventana que se almacena en un archivo tipo xib llamado MainMenu.xib. iIgualmente incorporará una clase llamada AppDelegate.

First we must create a new project called "twoWindows". In the main window we must add one button with the title "Abrir Segunda Ventana".
From this button we will make an action control dragging to the AppDelegate.h file. The name for this action would be "mostrarSegunda". Later we will implement the code for this action.
Once we have created the project we will have a a first window associated to a xib file called MainMenu.xib. Also we have an asociated class called AppDelegate. 



Vamos a crear ahora la segunda ventana, para ello primero crearemos el fichero xib donde se define la ventana. En la barra lateral izquierda (Navigator), seleccionamos el Project Navigator y a su vez hacemos click sobre la carpeta del proyecto. Después hacemos click con el derecho y del menú que sale seleccionamos la opción New File.

Now we are going to make the second window. First we need a xib file where the window is defined, so in the left side bar (Navigator) we must choose the Project Navigator and click over the project folder. Then we must make a right click and choose New File in the menu that appears.



En la ventana que se abre escogeremos MacOS / User Interface y Window, y pulsaremos sobre Next, pondremos como nombre “SecondWindow” y por último pulsaremos sobre Create

In this window we must choose MacOS / User Interface and Window, Next and set the name for the new window as "secondWindow". Finally we click over Create.



Se crea entonces la segunda ventana. Crearemos ahora una clase que nos permita controlar dicha ventana. Para ello volvemos al Navigator y dentro de este al Project Navigator, volvemos a hacer botón derecho sobre la carpeta del proyecto y escogemos de nuevo New File.
Una vez en este menú escogemos la opción MacOS / Cocoa /Objective-C Class y pulsamos sobre Next.



Nos aparecerá otra ventana donde además de poner el nombre, “SecondWindowController”, escogeremos la clase a la que pertenece, en este caso NSWindowController



Pulsamos sobre Next, y sobre créate y se creará la clase, quedando el proyecto de la siguiente manera:



El siguiente paso será unir la nueva ventana con su controlador creado. Para ello en el Project Navigator hacemos click sobre SecondWindow.Xib y una vez se muestre este en el Interface Builder, haremos click sobre el File´s Owner, el cubo transparente. En la barra lateral (Utilities) escojeremos el identity Inspector (tercer botón por la izqda.), y donde pone Class, borraremos la que hay por defecto y escribiremos el nombre de la nueva clase que hemos creado: SecondWindowController.



Por último desde el File´s Owner y con ctrl pulsado arrastraremos hasta el window, y crearemos un outlet sobre window tal y como se muestra a continuación:

Drag files


Declaramos la nueva clase creada para la segunda ventana en el fichero AppDelegate.h que controla la primera. Añadimos esto:



El siguiente paso será añadir la declaración de SecondViewController.h en el fichero AppDelegate.m, así como escribir el código asociado al botón que abrirá la ventana.



Y listo, de esta manera se abre la segunda ventana desde la primera.


No hay comentarios: