Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Cómo usar emoticonos en iOS

Uso-de-emoticons-en-ios

En iOS el soporte para emoticonos está incorporado en el propio sistema operativo. Como desarrollador no debes hacer nada especial para que tus aplicaciones soporten los distintos emoticonos. De hecho es el usuario quien, si quiere usar emoticonos, debe añadir un teclado a la configuración de teclados de su dispositivo: el teclado Emoji. Para ver cómo añadir el teclado Emoji puede consultarse el siguiente enlace de la documentación de Apple: iOS: Cómo utilizar Emoji.

Una vez el usuario haya añadido el teclado Emoji cuando quiera añadir un emoticono, simplemente debe cambiar a dicho teclado y podrá introducir emoticonos. La siguiente captura de pantalla muestra una aplicación iOS que contiene un campo de texto estándar al que se le ha añadido un emoticono:

Campo de texto con emoticono

Lo que debemos conocer, como desarrolladores, es que iOS aprovecha un rango de valores no usado del estándar Unicode para los emoticonos. Es decir, un objeto NSString puede contener emoticonos sin ningún problema. La siguiente captura de pantalla muestra el valor de la propiedad text del campo de texto (propiedad que contiene el texto que haya entrado el usuario):

Emoticono en una cadena

Vemos que incluso XCode nos muestra el emoticono en la ventana de expresiones. Pero... ¿cuál es el valor Unicode de dicho carácter? Para averiguarlo podemos usar el método characterAtIndex: de la clase NSString que devuelve un carácter según el índice. Dicho método devuelve un unichar (que realmente es un unsigned short). Así si ejecutamos el código:

unichar character = [text characterAtIndex:5];

podremos observar que el valor concreto de este carácter es d83d (el valor está en hexadecimal).

Como curiosidad comentar que se puede usar la función CFStringTransform para transformar una cadena que contenga emoticonos a otra cadena que contenga las descripciones de dichos emoticonos:

    NSString* text = _txtEmoticons.text;
    NSMutableString* mutable = [text mutableCopy];
    CFMutableStringRef mutableRef =(__bridge CFMutableStringRef)mutable;
    CFStringTransform(mutableRef,NULL, kCFStringTransformToUnicodeName, false);

Al ejecutar dicho código el valor contenido en mutable (asumiendo que entramos la cadena anterior) es:

Emoticono traducido

Aunque seguramente, lo que más te puede interesar alguna vez es detectar si una cadena contiene algún emoticono. En este caso, lo mejor es usar una expresión regular que mire si la cadena tiene caracteres en el rango Unicode usado en iOS para los emoticonos:

    NSString* text = _txtEmoticons.text;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]" options:NSRegularExpressionCaseInsensitive error:nil];   
    NSUInteger emojiCount = [regex numberOfMatchesInString:text options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [text length])];

Al ejecutar este código la variable emojiCount contendrá el número de emoticonos contenidos en la cadena:

Emoticonos de una cadena contados

En resumen, en este post hemos visto cómo iOS tiene soporte nativo para emoticonos (que se codifican mediante caracteres Unicode) y hemos visto algunos mecanismos para poder saber si una cadena (NSString) contiene emoticonos y para lidiar con ellos.

Eduard Tomás Eduard es ingeniero informático, atesora muchos años de experiencia como desarrollador y ha sido galardonado como MVP por Microsoft en diez ocasiones. Colabora con la comunidad impartiendo charlas en formato webcast y en eventos de distintos grupos de usuarios. Es Certified Kubernetes Application Developer. Ver todos los posts de Eduard Tomás
Archivado en: Desarrollo móvil

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.