Autocorrección — esencia, mecanismos y UITextAutocorrectionType

Autor: IT Sectr Publicado: 2026-07-08 Tiempo de lectura: 7 min

Autocorrección es un mecanismo integrado de iOS que corrige automáticamente errores ortográficos al ingresar texto. UIKit gestiona el comportamiento de la autocorrección a través de la propiedad autocorrectionType en el protocolo UITextInputTraits, soportando tres modos: predeterminado, activado y desactivado. Según Apple Text Programming Guide (2025), la autocorrección analiza el texto ingresado basándose en el diccionario del sistema y el aprendizaje automático en el dispositivo. Use autocorrectionType para cada campo de texto individualmente — esto permite adaptar el comportamiento a la especificidad de los datos ingresados.

Puntos clave

  • Autocorrección es un mecanismo del sistema iOS para corregir automáticamente errores ortográficos al escribir
  • UITextAutocorrectionType soporta tres modos: .default, .yes y .no para cada campo individualmente
  • Diccionario de autocorrección se construye sobre el diccionario del sistema iOS y un modelo lingüístico entrenado en el dispositivo
  • Safe Keyboard es un teclado protegido que desactiva la autocorrección para campos de contraseñas y datos financieros
  • Localización — la autocorrección funciona para todos los idiomas de teclado compatibles, incluyendo diseños adicionales

¿Qué es la Autocorrección?

Autocorrección es una función del sistema operativo iOS que reemplaza automáticamente las palabras escritas por alternativas presumiblemente correctas cuando se detecta un error ortográfico. El mecanismo funciona a nivel de los campos de texto de UIKit y está disponible en todas las aplicaciones que utilizan elementos de entrada estándar UITextField y UITextView.

En el núcleo de la autocorrección hay un modelo lingüístico entrenado con millones de ejemplos de texto para cada idioma compatible. El modelo funciona completamente en el dispositivo (on-device), lo que garantiza la confidencialidad de los datos ingresados — el texto no se envía a los servidores de Apple para su análisis. Con cada actualización de iOS, el modelo se refina y se amplía con nuevas palabras y reglas.

La autocorrección se activa automáticamente para todos los campos de texto a menos que el desarrollador la desactive explícitamente. El usuario puede desactivar completamente la autocorrección en la configuración del sistema (Configuración > General > Teclado > Autocorrección), pero el desarrollador también puede controlar este comportamiento para campos individuales a través de la propiedad autocorrectionType.

Según WWDC 2023 Sesión 204, Apple presentó un modelo mejorado de autocorrección basado en Transformer, que considera el contexto de toda la oración y no solo la última palabra. Esto redujo las correcciones falsas en un 30% en comparación con el modelo anterior basado en n-gramas.

Modos de autocorrección en iOS

UITextAutocorrectionType es una enumeración con tres valores que determinan el comportamiento de la autocorrección para un campo de texto específico. Cada valor se establece mediante la propiedad autocorrectionType, accesible en Interface Builder y en código al crear el campo.

Modo .default

El valor .default significa que el campo hereda la configuración global de autocorrección de los parámetros del sistema del teclado. Este modo se recomienda para la mayoría de los campos de texto, ya que respeta la elección del usuario. Si el usuario desactivó la autocorrección en la configuración, un campo con .default tampoco la usará.

Modo .yes

El valor .yes activa forzosamente la autocorrección para el campo independientemente de la configuración del sistema. Este modo solo debe usarse para campos donde la precisión ortográfica es crítica — por ejemplo, en editores de texto, campos de entrada de notas o mensajes. Apple recomienda usar .yes con precaución, ya que la activación forzosa puede contradecir las expectativas del usuario.

Modo .no

El valor .no desactiva la autocorrección para un campo específico. Este modo es obligatorio para campos de contraseñas (entrada de texto segura), direcciones de correo electrónico, códigos de verificación y consultas de búsqueda. En estos campos, la autocorrección no solo es inútil, sino perjudicial — puede reemplazar datos correctamente ingresados por alternativas erróneas.

ModoValorRecomendación
.defaultHereda la configuración del sistemaLa mayoría de campos de entrada
.yesForzosamente activadoEditores de texto, notas
.noForzosamente desactivadoContraseñas, email, búsqueda, códigos

Modelo lingüístico y diccionario

El modelo lingüístico de la autocorrección de iOS utiliza una combinación de un diccionario estático y un modelo entrenado dinámicamente. El diccionario del sistema contiene las palabras más utilizadas para cada idioma, mientras que el modelo lingüístico basado en Transformer analiza el contexto y la probabilidad de reemplazo. El modelo se entrena en el dispositivo basándose en los textos ingresados por el usuario.

Los usuarios pueden agregar palabras a un diccionario personal a través de la configuración del teclado (Configuración > General > Teclado > Reemplazo de texto). Las palabras agregadas se guardan en iCloud y se sincronizan entre dispositivos usando el mismo Apple ID. El sistema no corregirá las palabras del diccionario personal, lo cual es conveniente para nombres, marcas y términos técnicos.

Para dominios especializados — médicos, legales, técnicos — el diccionario estándar puede contener términos insuficientes. En tales aplicaciones, se recomienda desactivar la autocorrección para los campos relevantes o usar el reemplazo de texto personalizado a través del método de UIResponder .replacementDictionary para iOS 17+.

Según Apple Machine Learning Research (2024), el nuevo modelo de autocorrección basado en la arquitectura Transformer procesa hasta 10 tokens de contexto (frente a 3 tokens en el modelo anterior), lo que permite determinar con mayor precisión la intención del usuario. El modelo considera no solo la ortografía, sino también la estructura gramatical de la oración.

Safe Keyboard y datos confidenciales

Safe Keyboard es un modo de entrada protegido que se activa automáticamente para campos con secureTextEntry = true. En este modo, la autocorrección, la autocapitalización y la entrada predictiva se desactivan por el sistema independientemente de los valores establecidos de autocorrectionType. El sistema también bloquea el acceso al diccionario del usuario y los reemplazos de texto.

Safe Keyboard previene la fuga de datos ingresados a través de los mecanismos de autocorrección. Si la autocorrección estuviera activa para un campo de contraseña, el sistema podría guardar la contraseña ingresada en el diccionario del usuario o enviarla a los servidores de Apple para el entrenamiento del modelo. Safe Keyboard garantiza que los datos confidenciales no salgan de la aplicación.

Para aplicaciones financieras, Safe Keyboard se activa automáticamente solo para campos con secureTextEntry. Para campos de entrada de números de tarjeta, fechas de vencimiento y códigos CVV, el desarrollador debe desactivar adicionalmente la autocorrección manualmente estableciendo autocorrectionType = .no y keyboardType = .numberPad o .phonePad.

A partir de iOS 17, Safe Keyboard soporta protección contra interceptación a través de teclados de terceros. Si el usuario ha instalado un teclado desde la App Store, cuando se activa secureTextEntry, el teclado del sistema reemplaza automáticamente al de terceros, incluso si estaba seleccionado como predeterminado. Esto garantiza que las contraseñas se ingresen solo a través del teclado seguro del sistema.

Configuración mediante código Swift

La gestión de la autocorrección en Swift se realiza a través de la propiedad autocorrectionType de los objetos UITextField y UITextView. La propiedad está disponible tanto para lectura como para escritura, y puede cambiarse dinámicamente según el contexto de entrada. La configuración a través de Interface Builder está disponible en el inspector de atributos bajo el nombre Correction.

swift
let textField = UITextField()
textField.autocorrectionType = .no

Para un formulario de inicio de sesión, la autocorrección debe desactivarse para el campo de contraseña y activarse por defecto para el campo de inicio de sesión. El campo de correo electrónico también se recomienda dejarlo sin autocorrección, ya que el símbolo @ y los nombres de dominio a menudo se reemplazan incorrectamente. Para el campo de nombre de usuario, la autocorrección puede activarse si el nombre de usuario es una palabra legible.

swift
class RegistrationViewController: UIViewController {

    @IBOutlet var nameField: UITextField!
    @IBOutlet var emailField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameField.autocorrectionType = .yes
        emailField.autocorrectionType = .no
        emailField.textContentType = .emailAddress
    }
}

Para UITextView, la configuración de la autocorrección se realiza de manera similar. Esto es especialmente importante para campos de entrada multilínea de comentarios, mensajes y notas, donde la autocorrección aporta el mayor beneficio pero también puede crear inconvenientes al ingresar términos técnicos o código.

swift
let textView = UITextView()
textView.autocorrectionType = .default

Para cambios dinámicos de la autocorrección, use el delegado UITextFieldDelegate. El método textFieldDidBeginEditing se llama cuando se activa un campo, y en él puede cambiar autocorrectionType dependiendo del contexto actual o del rol del campo, que puede cambiar durante la operación de la aplicación.

Cuándo desactivar la autocorrección

La autocorrección debe desactivarse en campos donde la precisión de los datos ingresados es crítica y el sistema no puede determinar correctamente la intención del usuario. Casos principales: campos de contraseñas y datos seguros, campos de entrada de direcciones de correo electrónico, cadenas de búsqueda, campos de entrada de código y código de programación, así como campos con formatos de datos no estándar.

Para barras de búsqueda (UISearchBar), la autocorrección está desactivada por defecto, lo que coincide con las expectativas del usuario. Al buscar, el usuario puede ingresar palabras incompletas, términos técnicos o consultas en diferentes idiomas, y la autocorrección solo interferiría. De manera similar para campos de entrada de URL y nombres de dominio.

En mensajeros y aplicaciones de comunicación, la autocorrección suele estar activada, pero para ingresar jerga, abreviaturas y vocabulario informal, puede crear inconvenientes. En tales casos, el usuario puede desactivar la autocorrección a través de la configuración del teclado, o el desarrollador puede proporcionar un interruptor directamente en la interfaz de la aplicación.

Según las Human Interface Guidelines de Apple, la autocorrección debe desactivarse para cualquier campo donde los datos ingresados puedan no encontrarse en el diccionario del sistema: números de pedido, códigos de reserva, identificadores, IMEI, direcciones MAC. Si el campo acepta datos alfanuméricos en un formato no estándar — desactive la autocorrección.

Preguntas frecuentes

¿Cómo desactivar completamente la autocorrección en toda la aplicación?

No existe una desactivación global de la autocorrección para toda la aplicación. Es necesario establecer autocorrectionType = .no para cada campo de texto individualmente o crear una subclase de UITextField con un valor anulado.

¿Por qué no funciona la autocorrección en el simulador?

El simulador utiliza un modelo de entrada simplificado desde el teclado de Mac. El modelo lingüístico de autocorrección no está activo en el simulador — use un dispositivo real para las pruebas.

¿Cómo agregar una palabra al diccionario del usuario?

El usuario puede agregar una palabra a través de Configuración > General > Teclado > Reemplazo de texto. No hay una API para que la aplicación agregue palabras programáticamente al diccionario del sistema de autocorrección.

¿La configuración de keyboardType desactiva la autocorrección?

No, keyboardType no afecta la autocorrección. Incluso para el teclado .numberPad, la autocorrección puede estar activa si no se desactiva explícitamente a través de autocorrectionType.

¿La autocorrección funciona para teclados de terceros?

Los teclados de terceros tienen sus propios mecanismos de autocorrección y no utilizan el UITextAutocorrectionType del sistema. El comportamiento depende de la implementación del teclado específico.

Resumen

  • Autocorrección es una función del sistema iOS para corregir automáticamente errores ortográficos en campos de texto
  • Tres modos de UITextAutocorrectionType: .default (hereda configuración), .yes (activada), .no (desactivada)
  • Modelo lingüístico Transformer procesa hasta 10 tokens de contexto y funciona completamente en el dispositivo
  • Safe Keyboard desactiva automáticamente la autocorrección para campos con secureTextEntry = true
  • La autocorrección es inútil para campos de contraseñas, email, códigos, búsqueda y formatos de datos no estándar
  • La configuración se realiza a través de la propiedad autocorrectionType para cada campo individualmente
  • Recomendación — pruebe el comportamiento de la autocorrección en un dispositivo real con un modelo lingüístico activo

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también