
Hay veces, programando bajo la plataforma iOS en Xamarin, que necesitamos conocer cuando un campo UITextField, que no es más que un campo para la introducción de texto, ha obtenido o perdido el foco.
Si has trabajado alguna vez, sobre esta misma plataforma, pero en programación para Android, sabrás que para esto, simplemente existe un evento que es llamado cuando la propiedad del foco es modificada, es decir, cuando se pierde o se obtiene el foco. Esta propiedad es FocusChange, pero, tal como te indico, solo es utilizable bajo Android.
Para la programación en iOS, una de las formas de saber si un elemento de la clase UITextField ha obtenido o perdido el foco es mediante los eventos EditingDidBegin y EditingDidEnd. Así, suponiendo que tenemos un elemento de esta clase, tenemos el siguiente código:
1 2 3 4 5 6 7 | miCampo.EditingDidBegin += delegate { //Código a ejecutar cuando el elemento miCampo de la clase UITextField obtiene el foco. } miCampo.EditingDidEnd += delegate { //Código a ejecutar cuando el elemento miCampo de la clase UITextField pierde el foco. } |
Mediante estos dos eventos, podemos saber cuándo un determinado objeto de la clase UITextField pierde o gana el foco, pudiendo así ejecutar el código que necesitemos en cada momento, tal como la validación de un campo, o la habilitación condicional de otros campos y/o botones.
De la misma forma, para determinar si un determinado elemento de esta clase (UITextField) tiene el foco, deberemos hacer uso de la propiedad IsEditing, la cual nos devolverá verdadero o falso (boolean) en caso de que el elemento en cuestión esté siendo editado y, por consiguiente, tenga actualmente el foco.
