ios objective-c uitextfield uikit

ios - ¿Cómo puedo obtener la propiedad textContentType de UITextField para hacer algo?



uitextfielddelegate (2)

Aquí está la documentación sobre la propiedad textContentType de UITextField :

Utilice esta propiedad para proporcionar al teclado y al sistema información sobre el significado semántico esperado para el contenido que ingresan los usuarios. Por ejemplo, puede especificar UITextContentTypeEmailAddress para un campo de texto que los usuarios completen para recibir una confirmación por correo electrónico. Cuando proporciona esta información sobre el contenido que espera que los usuarios ingresen en un área de ingreso de texto, en algunos casos el sistema puede seleccionar automáticamente un teclado apropiado y mejorar las correcciones del teclado y la integración proactiva con otras oportunidades de ingreso de texto.

Debido a que el significado semántico esperado para cada área de ingreso de texto debe identificarse tan específicamente como sea posible, no puede combinar varios valores para una propiedad textContentType . Para conocer los posibles valores que puede utilizar, consulte Tipos de contenido de texto ; por defecto, el valor de esta propiedad es nil .

Esto parece bastante sencillo, pero no puedo imaginar cómo hacer que esto realmente haga nada. self.textField.textContentType = UITextContentTypeEmailAddress una aplicación de demostración simple, agregué un campo de texto y configuré self.textField.textContentType = UITextContentTypeEmailAddress . Luego lo ejecuté en un iPhone 7 con iOS 10.0.1.

Como mínimo esperaba que esto seleccionara automáticamente el teclado del correo electrónico, sin tener que configurarlo explícitamente. No es así: recibo el teclado estándar en mi iPhone.

También esperaba que mostrara mis propias direcciones de correo electrónico para las sugerencias de QuickType. He visto que esto sucede en otros lugares: si estoy en Safari y detecta que estoy editando un campo de correo electrónico, muestra las direcciones de correo electrónico de mi casa y mi trabajo como sugerencias. Nuevamente, no hace eso aquí, aunque la documentación sugiere que debería hacerlo.

Incluso si también configuro el tipo de keyboardType en UIKeyboardTypeEmailAddress , todavía no recibo las sugerencias de QuickType que esperaba.

Hay una charla en la WWDC que discute esta nueva capacidad , pero nunca hay ninguna sugerencia de que deba hacer algo más que establecer esta propiedad única.

¿Me estoy perdiendo algún paso, o esto realmente no hace lo que estoy esperando?


Finalmente, esto es compatible con aplicaciones de terceros en iOS 11. Tengo una aplicación creada con el iOS 10.3 SDK instalado en iOS 11 beta 1. Incluye campos con textContentType = UITextContentTypeEmailAddress y sugieren correctamente las dos direcciones de correo electrónico en mi tarjeta de contacto. También tengo campos con textContentType = UITextContentTypePostalCode que sugieren correctamente mi código postal.

Además de los tipos existentes, iOS 11 también agrega UITextContentTypeUsername y UITextContentTypePassword , que se pueden usar para admitir Autocompletar contraseñas para aplicaciones .


Solo para información (porque apenas lo pude encontrar en Google y Apple Docs):

En el nuevo ios Apple proporcionó una nuevas características (mira la imagen). Aquí está la description y wwdc acerca de ellos.