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:
Publicar un comentario