Controles

Controles

Aquí se describen varios controles útiles a la hora de diseñar la interfaz gráfica de nuestra aplicación. Solo mencionar que a todos estos controles se les puede asociar una etiqueta de ayuda (Tool Tip) en el Inspector, en la opción Help. De tal forma que el usuario pueda obtener una ayuda al dejar el mouse sobre el control.

Etiqueta de Ayuda

Estos controles pueden conectarse a varios métodos, de tal forma que todos ellos se ejecuten cuando el usuario interactue con ellos.

NSSlider

Estos controles consisten de un tirador que se puede deslizar sobre una barra para seleccionar un valor determinado. El tirador puede arrastrarse con el mouse o moverse mediante las flechas del teclado. En GNUstep estos controles son como el mostrado en la siguiente imagen:

Slider1

Generalmente estos controles se asocian a un NSTextField (el que tiene el titulo 0 en la imagen) para mostrar el valor seleccionado en el slider. Para que el NSTextField muestre el valor seleccionado en el slider, es necesario conectar el slider al método correspondiente del NSTextField, como se muestra en la imagen:

slider2

Puede utilizarse alguno de los siguientes métodos: takeIntValueFrom:, takeFloatValueFrom: o takeDoubleValueFrom:. Además en el Inspector pueden configurarse varios aspectos del slider:

slider3

En la sección Values se configura el valor mínimo del slider, Minumum. El valor seleccionado al crear el slider, Current. El valor máximo, Maximum. El número de Ticks nos permite especificar ciertas divisiones de interés. Por ejemplo, si tenemos una escala de 0 a 10, y nos interesen los enteros pares incluyendo al cero (0, 2, 4, …) debemos especificar 6 ticks para los seis valores posibles. Estos ticks solamente son útiles cuando se selecciona la opción Stop on ticks only. Ya que de esta forma, el usuario sólo podrá seleccionar las posiciones que corresponden con un tick (en este caso lo enteros pares o el cero).

En la sección Options podemos indicar si el slider sera continuo o no, opción Continuous. En caso de ser continuo, mientras el usuario este moviendo el tirador, el valor indicado por el NSTextField cambiara constantemente (es decir, que el método o los métodos asociados al slider se llamaran constantemente). En caso contrario, el valor solo cambiara cuando el usuario haya soltado el tirador en la posición deseada. La opción Enabled simplemente establece si el slider estará activado desde el momento en que se crea o no.

En la última parte, podemos establecer el incremento del slider cuando el usuario tenga presionada la tecla Alt y utiliza las flechas para mover el slider, Alt Increment. El valor por defecto, -1, indica que el incremento sera el mismo que cuando se mueve el tirador sin la tecla Alt presionada. El valor de Knob Tickness, establece el ancho que tendrá el tirador en relación a los ticks establecidos. Por el momento, Gorm hará caso omiso del valor establecido aquí, ya que esta opción no se encuentra totalmente implementada.

Es posible establecer un titulo para el slider. Aunque esto hay que realizarlo con código ya que Gorm no nos ofrece esta posibilidad. Suponiendo que el outlet que conecta con el slider es slider, el código seria el siguiente:

[slider setTitle: @"Volumen"];

lo que daría el siguiente resultado:

Slider4

NSStepper

Los controles stepper son un par de flechas opuestas que nos permiten seleccionar un valor predeterminado. En GNUstep un stepper se ve como en la siguiente imagen:

Stepper1

Generalmente estos controles se asocian a un NSTextField (el que tiene el titulo 0 en la imagen) para mostrar el valor seleccionado en el stepper. Para que el NSTextField muestre el valor seleccionado, es necesario conectar el stepper al método correspondiente del NSTextField, como se muestra en la imagen:

Stepper2

Puede utilizarse alguno de los siguientes métodos: takeIntValueFrom:, takeFloatValueFrom: o takeDoubleValueFrom:. Además en el Inspector pueden configurarse varios aspectos del stepper:

Stepper3

Si se selecciona la opción Autorepeat, el stepper aumentara (o disminuirá) constantemente su valor si el usuario da un clic sostenido en el. De lo contrario un clic, aunque sea sostenido, corresponderá solamente a un incremento o a un decremento. Si se selecciona la opción Value wraps, el stepper, cuando se encuentre en el valor máximo, saltara al valor inicial si el usuario da un clic para incrementarlo. Asimismo, si se encuentra en el valor mínimo, al dar un clic para disminuirlo, saltara al valor máximo. Si no se activa esta opción el stepper topara al llegar al valor mínimo o máximo. Value, corresponde al valor que tendrá el stepper al momento de crearse. Minumum Value, corresponde al valor mínimo. Maximum Value, al valor máximo. E Increment, corresponde al valor en que se incrementara o disminuirá el stepper.

Casillas de selección

Las casillas de selección son una de las formas que pueden tomar los objetos de la clase NSButton. Uno de estos controles es como se muestra a continuación:

Toggle1

En el Inspector pueden configurarse varios aspectos de este control:

Toggle2

Aquí, la opción de interés es Selected en la sección Options. Lo que nos permite establecer si la casilla estará seleccionada al momento de crearse. La casilla puede conectarse directamente a algún método. Dicho método puede implementar el siguiente código para determinar en que estado se encuentra la casilla y ejecutar el código correspondiente:

if ([sender state] == NSOnState)
{
//Lo que debe hacerse cuando se activa la casilla
}
else
{
//Lo que debe hacerse cuando se desactiva
}