Autocorreção — essência, mecanismos e UITextAutocorrectionType

Autor: IT Sectr Publicado: 2026-07-08 Tempo de leitura: 7 min

Autocorreção é um mecanismo integrado do iOS que corrige automaticamente erros ortográficos ao inserir texto. O UIKit gerencia o comportamento da autocorreção através da propriedade autocorrectionType no protocolo UITextInputTraits, suportando três modos: padrão, ativado e desativado. De acordo com o Apple Text Programming Guide (2025), a autocorreção analisa o texto inserido com base no dicionário do sistema e aprendizado de máquina no dispositivo. Use autocorrectionType para cada campo de texto individualmente — isto permite adaptar o comportamento à especificidade dos dados inseridos.

Pontos-chave

  • Autocorreção é um mecanismo do sistema iOS para corrigir automaticamente erros ortográficos ao digitar
  • UITextAutocorrectionType suporta três modos: .default, .yes e .no para cada campo individualmente
  • Dicionário de autocorreção é construído com base no dicionário do sistema iOS e um modelo de linguagem treinado no dispositivo
  • Safe Keyboard é um teclado protegido que desativa a autocorreção para campos de senhas e dados financeiros
  • Localização — a autocorreção funciona para todos os idiomas de teclado suportados, incluindo layouts adicionais

O que é Autocorreção?

Autocorreção é uma funcionalidade do sistema operacional iOS que substitui automaticamente palavras digitadas por alternativas presumivelmente corretas quando um erro ortográfico é detectado. O mecanismo funciona ao nível dos campos de texto do UIKit e está disponível em todas as aplicações que utilizam elementos de entrada padrão UITextField e UITextView.

No núcleo da autocorreção existe um modelo de linguagem treinado com milhões de exemplos de texto para cada idioma suportado. O modelo funciona completamente no dispositivo (on-device), garantindo a confidencialidade dos dados inseridos — o texto não é enviado para os servidores da Apple para análise. A cada atualização do iOS, o modelo é refinado e expandido com novas palavras e regras.

A autocorreção é ativada automaticamente para todos os campos de texto, a menos que o desenvolvedor a desative explicitamente. O utilizador pode desativar completamente a autocorreção nas definições do sistema (Definições > Geral > Teclado > Autocorreção), mas o desenvolvedor também pode controlar este comportamento para campos individuais através da propriedade autocorrectionType.

De acordo com a WWDC 2023 Sessão 204, a Apple apresentou um modelo melhorado de autocorreção baseado em Transformer, que considera o contexto de toda a frase e não apenas a última palavra. Isto reduziu as correções falsas em 30% em comparação com o modelo anterior baseado em n-gramas.

Modos de autocorreção no iOS

UITextAutocorrectionType é uma enumeração com três valores que determinam o comportamento da autocorreção para um campo de texto específico. Cada valor é definido através da propriedade autocorrectionType, acessível no Interface Builder e em código ao criar o campo.

Modo .default

O valor .default significa que o campo herda a definição global de autocorreção dos parâmetros do sistema do teclado. Este modo é recomendado para a maioria dos campos de texto, pois respeita a escolha do utilizador. Se o utilizador desativou a autocorreção nas definições, um campo com .default também não a utilizará.

Modo .yes

O valor .yes ativa forçosamente a autocorreção para o campo independentemente da definição do sistema. Este modo só deve ser usado para campos onde a precisão ortográfica é crítica — por exemplo, em editores de texto, campos de inserção de notas ou mensagens. A Apple recomenda usar .yes com cautela, pois a ativação forçada pode contradizer as expectativas do utilizador.

Modo .no

O valor .no desativa a autocorreção para um campo específico. Este modo é obrigatório para campos de senhas (inserção de texto segura), endereços de email, códigos de verificação e consultas de pesquisa. Nestes campos, a autocorreção não é apenas inútil, mas prejudicial — pode substituir dados corretamente inseridos por alternativas erradas.

ModoValorRecomendação
.defaultHerda a definição do sistemaMaioria dos campos de inserção
.yesForçosamente ativadoEditores de texto, notas
.noForçosamente desativadoSenhas, email, pesquisa, códigos

Modelo de linguagem e dicionário

O modelo de linguagem da autocorreção do iOS utiliza uma combinação de um dicionário estático e um modelo treinado dinamicamente. O dicionário do sistema contém as palavras mais utilizadas para cada idioma, enquanto o modelo de linguagem baseado em Transformer analisa o contexto e a probabilidade de substituição. O modelo é treinado no dispositivo com base nos textos inseridos pelo utilizador.

Os utilizadores podem adicionar palavras a um dicionário pessoal através das definições do teclado (Definições > Geral > Teclado > Substituição de Texto). As palavras adicionadas são guardadas no iCloud e sincronizadas entre dispositivos usando o mesmo Apple ID. O sistema não corrigirá palavras do dicionário pessoal, o que é conveniente para nomes, marcas e termos técnicos.

Para domínios especializados — médicos, legais, técnicos — o dicionário padrão pode conter termos insuficientes. Nessas aplicações, recomenda-se desativar a autocorreção para os campos relevantes ou usar a substituição de texto personalizada através do método UIResponder .replacementDictionary para iOS 17+.

De acordo com a Apple Machine Learning Research (2024), o novo modelo de autocorreção baseado na arquitetura Transformer processa até 10 tokens de contexto (contra 3 tokens no modelo anterior), permitindo determinar com maior precisão a intenção do utilizador. O modelo considera não apenas a ortografia, mas também a estrutura gramatical da frase.

Safe Keyboard e dados confidenciais

Safe Keyboard é um modo de inserção protegido que é ativado automaticamente para campos com secureTextEntry = true. Neste modo, a autocorreção, a autocapitalização e a inserção preditiva são desativadas pelo sistema independentemente dos valores definidos de autocorrectionType. O sistema também bloqueia o acesso ao dicionário do utilizador e às substituições de texto.

O Safe Keyboard previne a fuga de dados inseridos através dos mecanismos de autocorreção. Se a autocorreção estivesse ativa para um campo de senha, o sistema poderia guardar a senha inserida no dicionário do utilizador ou enviá-la para os servidores da Apple para treino do modelo. O Safe Keyboard garante que os dados confidenciais não saiam da aplicação.

Para aplicações financeiras, o Safe Keyboard é ativado automaticamente apenas para campos com secureTextEntry. Para campos de inserção de números de cartão, datas de validade e códigos CVV, o desenvolvedor deve desativar adicionalmente a autocorreção manualmente definindo autocorrectionType = .no e keyboardType = .numberPad ou .phonePad.

A partir do iOS 17, o Safe Keyboard suporta proteção contra interceção através de teclados de terceiros. Se o utilizador instalou um teclado da App Store, quando secureTextEntry é ativado, o teclado do sistema substitui automaticamente o de terceiros, mesmo que estivesse selecionado como padrão. Isto garante que as senhas sejam inseridas apenas através do teclado seguro do sistema.

Configuração através de código Swift

A gestão da autocorreção em Swift é feita através da propriedade autocorrectionType dos objetos UITextField e UITextView. A propriedade está disponível tanto para leitura como para escrita, e pode ser alterada dinamicamente conforme o contexto de inserção. A configuração através do Interface Builder está disponível no inspetor de atributos sob o nome Correction.

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

Para um formulário de início de sessão, a autocorreção deve ser desativada para o campo de senha e ativada por padrão para o campo de início de sessão. O campo de email também é recomendado deixar sem autocorreção, pois o símbolo @ e os nomes de domínio são frequentemente substituídos incorretamente. Para o campo de nome de utilizador, a autocorreção pode ser ativada se o nome de utilizador for uma palavra legível.

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, a configuração da autocorreção é feita de forma semelhante. Isto é especialmente importante para campos de inserção multilinha de comentários, mensagens e notas, onde a autocorreção traz o maior benefício mas também pode criar inconvenientes ao inserir termos técnicos ou código.

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

Para alterações dinâmicas da autocorreção, use o delegado UITextFieldDelegate. O método textFieldDidBeginEditing é chamado quando um campo é ativado, e nele pode alterar autocorrectionType dependendo do contexto atual ou da função do campo, que pode mudar durante a operação da aplicação.

Quando desativar a autocorreção

A autocorreção deve ser desativada em campos onde a precisão dos dados inseridos é crítica e o sistema não consegue determinar corretamente a intenção do utilizador. Casos principais: campos de senhas e dados seguros, campos de inserção de endereços de email, strings de pesquisa, campos de inserção de código e código de programação, bem como campos com formatos de dados não padronizados.

Para barras de pesquisa (UISearchBar), a autocorreção está desativada por padrão, o que corresponde às expectativas dos utilizadores. Ao pesquisar, o utilizador pode inserir palavras incompletas, termos técnicos ou consultas em diferentes idiomas, e a autocorreção só atrapalharia. Similarmente para campos de inserção de URL e nomes de domínio.

Em mensageiros e aplicações de comunicação, a autocorreção geralmente está ativada, mas para inserir gírias, abreviações e vocabulário informal, pode criar inconvenientes. Nesses casos, o utilizador pode desativar a autocorreção através das definições do teclado, ou o desenvolvedor pode fornecer um interruptor diretamente na interface da aplicação.

De acordo com as Human Interface Guidelines da Apple, a autocorreção deve ser desativada para qualquer campo onde os dados inseridos possam não ser encontrados no dicionário do sistema: números de encomenda, códigos de reserva, identificadores, IMEI, endereços MAC. Se o campo aceitar dados alfanuméricos num formato não padronizado — desative a autocorreção.

Perguntas frequentes

Como desativar completamente a autocorreção em toda a aplicação?

Não existe uma desativação global da autocorreção para toda a aplicação. É necessário definir autocorrectionType = .no para cada campo de texto individualmente ou criar uma subclasse de UITextField com um valor sobrescrito.

Porque é que a autocorreção não funciona no simulador?

O simulador utiliza um modelo de inserção simplificado do teclado do Mac. O modelo de linguagem da autocorreção não está ativo no simulador — utilize um dispositivo real para testes.

Como adicionar uma palavra ao dicionário do utilizador?

O utilizador pode adicionar uma palavra através de Definições > Geral > Teclado > Substituição de Texto. Não existe uma API para a aplicação adicionar palavras programaticamente ao dicionário do sistema de autocorreção.

Definir keyboardType desativa a autocorreção?

Não, keyboardType não afeta a autocorreção. Mesmo para o teclado .numberPad, a autocorreção pode estar ativa se não for explicitamente desativada através de autocorrectionType.

A autocorreção funciona para teclados de terceiros?

Os teclados de terceiros têm os seus próprios mecanismos de autocorreção e não utilizam o UITextAutocorrectionType do sistema. O comportamento depende da implementação do teclado específico.

Resumo

  • Autocorreção é uma funcionalidade do sistema iOS para corrigir automaticamente erros ortográficos em campos de texto
  • Três modos de UITextAutocorrectionType: .default (herda definições), .yes (ativada), .no (desativada)
  • Modelo de linguagem Transformer processa até 10 tokens de contexto e funciona completamente no dispositivo
  • Safe Keyboard desativa automaticamente a autocorreção para campos com secureTextEntry = true
  • A autocorreção é inútil para campos de senhas, email, códigos, pesquisa e formatos de dados não padronizados
  • A configuração é feita através da propriedade autocorrectionType para cada campo individualmente
  • Recomendação — teste o comportamento da autocorreção num dispositivo real com um modelo de linguagem ativo

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também