Translate

lunes, 24 de enero de 2011

Cocoa Application--->Hello World

Para crear la aplicación Hola Mundo seguiremos los siguientes pasos.

1º En XCode abriremos un nuevo proyecto,
seleccionando en el templare inicial el tipo Cocoa Application de las Mac-OS Applications. Le pondremos de nombre Hello.
De esta manera se crean todos los ficheros necesarios para ejecutar dicha aplicación. Si observamos el fichero main.m veremos que se ha creado una instancia de NSApplication:

return NSApplicationMain(argc,  (const char **) argv);


2º Crearemos una Custom View Class. Es decir una subclase de la cal NSView. Esta es la forma en la que podemos dibujar objetos en Cocoa. Para ello existe la clase NSView. Ésta incorpora todas las funciones relativas a dibujo, impresión y manejo de eventos. La idea es no usar directamente esta clase, sino crear una subclase que herede todas las propiedades de esta.
Para ello iremos a XCode y seleccionaremos en Group & Filer la carpeta clases, después en el menú cogeremos la opción File y New File. Seleccionaremos entonces Cocoa Class, Objetive-C Class, y NSView antes de pulsar Next. Después fijaremos el nombre "HelloView" y pulsaremos finish

3º Mediante el Interface Builder vamos a crear la ventana que mostraremos. Interface Builder es un editor gráfico que sirve para diseñar interfaces de usuario. Interface Builder no crea código, pero nos permite manipular los objetos y almacenarlos en archivos de tipo .nib o de tipo .xib
La idea ahora sería añadir una instancia de la clase HelloView que hemos creado antes a la ventana de la aplicación.
Abriremos Interface Builder haciendo doble click sobre el fichero MainMenu.xib que se encuentra dentro de la carpeta Resources. Una vez se abre este haremos doble clik sobre el ícono Window y se mostrará la ventana que aparecerá al ejecutar la aplicación.
Si pulsamos sobre la Window Title Bar y después en Tools escogemos Attribute Inspector veremos una ventana donde podremos cambiar algunos atributos del componente seleccionado, en este caso la Barra de Título de la ventana de la aplicación.

4º Añadir contenido a la ventana
. Para ello escogeremos Tools y Library, y aparecerá una ventana con la paleta de componentes que podemos usar para nuestra venta. En nuestro ejemplo usaremos el componente Custom View, que pertenece al grupo Layouts Views.
Una Custom View es una subclase de NSView. Una vez colocada sobre la ventana estiraremos el área de esta para que ocupe toda la ventana entera.
Mediante Tools e Identity Inspector seleccionaremos del pop-up menú Class la clase HeloView. Esta clase fue creada mediante XCode, pero como XCode e Interface Builder se comunican entre sí aparecerá en el pop-up menú.
Si te fijas el nombre del objeto que hemos echado en la ventana abra cambiado de Custom View a HeloView.
Podemos cerrar el Inspector Builder.

5º Volvemos a XCode
y vemos como han quedado los archivos HelloView.h y .m En el caso del segundo se abran añadido dos métodos automáticamente: initWithFrame: y drawRect:
El primero sirve para inicializar la clase NSView, mientras que el segundo es el que sireve para dibujar dentro del Custom View, aquí añadiremos el código necesario para dibujar lo que queremos.

//Especificamos la cadena que vamos a dibujar
NSString* hello = @"¡Hola, Mundo!";


//Especificamos en que posición dibujar
NSPoint point = NSMake

Una vez escrito esto dejamos el cursor detrás de NSMake y pulsamos ESC y como vimos anteriormente aparecerá un menú con las posibles instrucciones que podemos usar, en este caso necesitamos NSMakePoint que necesita dos números que son la posición X e Y donde empezamos a dibujar el texto. La sentencia deberá quedar así:

//Especificamos en que posición dibujar
NSPoint point = NSMake (15,75);


Después completaremos el resto de código con las siguientes instrucciones que permiten fijar el formato de la letra, tamaño, etc.

  NSMutableDictionary* font_attributes = [NSMutableDictionary new];
    NSFont* font = [NSFont fontWithName:@"Futura-MediumItalic" size:42];
    [font_attributes setObject:font forKey:NSFontAttributeName];

    [hello drawAtPoint:point withAttributes:font_attributes];

    [font_attributes release];


Por último grabamos seleccionando File y Save

6º Nos queda por compilar y ejecutar
para ello tan simple como pulsar el botón Build and Run y podremos ver el resultado.

No hay comentarios: