Autocapitalização: o que é, tipos e UITextAutocapitalizationType

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

Autocapitalização é um mecanismo do iOS que converte automaticamente a primeira letra do texto inserido para maiúscula em determinados contextos. O UIKit fornece a propriedade autocapitalizationType no protocolo UITextInputTraits com quatro modos: none, words, sentences e allCharacters. De acordo com o Apple Text Programming Guide (2025), a configuração correta da autocapitalização melhora a experiência do utilizador e reduz o número de correções manuais durante a entrada. Use o modo sentences para a maioria dos campos de texto e none para nomes de utilizador e palavras-passe.

Principais conclusões

  • Autocapitalização é a conversão automática da primeira letra para maiúscula em campos de entrada UIKit
  • UITextAutocapitalizationType inclui quatro modos: none, words, sentences e allCharacters
  • Modo sentences é o mais comum, capitaliza a primeira letra de cada frase
  • Modo words capitaliza a primeira letra de cada palavra, conveniente para campos de nome e apelido
  • Modo none é obrigatório para campos de palavras-passe, email, pesquisas e códigos de confirmação

O que é Autocapitalização?

Autocapitalização é uma funcionalidade do sistema operativo iOS que converte automaticamente o primeiro caractere do texto para maiúscula quando determinadas condições são cumpridas. O mecanismo é controlado através da propriedade autocapitalizationType, disponível para todos os elementos que implementam o protocolo UITextInputTraits: UITextField, UITextView e UISearchBar.

A funcionalidade opera ao nível do motor de texto do iOS e ativa-se no momento em que cada caractere é inserido. O sistema analisa a posição do cursor e o texto circundante para determinar se deve capitalizar o caractere atual. Se a condição for cumprida, o iOS substitui automaticamente a letra minúscula por uma maiúscula antes de esta aparecer no campo.

De acordo com as Apple Human Interface Guidelines (2025), a autocapitalização faz parte de um sistema de entrada preditiva mais amplo que também inclui a autocorreção e a entrada de texto preditiva. O utilizador pode desativar todas estas funcionalidades globalmente nas definições do sistema (Definições > Geral > Teclado), mas o programador também as controla ao nível de campos específicos.

Ao contrário da autocorreção, a autocapitalização não utiliza um modelo de linguagem — funciona por regras simples: após um ponto e espaço, no início do texto, após um caractere de nova linha. A exceção é o modo words, onde a primeira letra de cada palavra é capitalizada independentemente do contexto.

Modos de autocapitalização

UITextAutocapitalizationType é uma enumeração de quatro valores que definem a estratégia de conversão automática de maiúsculas/minúsculas. Cada modo é concebido para um tipo específico de campo de texto e resolve uma tarefa particular de experiência do utilizador.

None — sem autocapitalização

O modo .none desativa completamente a conversão automática de maiúsculas/minúsculas. Todos os caracteres são inseridos na forma como o utilizador os digita. Este modo é obrigatório para campos de palavras-passe, endereços de email, alcunhas, pesquisas e qualquer campo onde as maiúsculas sejam importantes para o processamento de dados no servidor.

Words — cada palavra com maiúscula

O modo .words capitaliza a primeira letra de cada palavra inserida. O sistema determina os limites das palavras por espaços e converte o primeiro caractere após um espaço para maiúscula. Este modo é conveniente para campos de nome, apelido, nomes de cidades, ruas e outros campos onde cada palavra deve começar com maiúscula.

Sentences — início de frase

O modo .sentences é o mais comum e é usado por defeito na maioria dos campos de texto. O sistema capitaliza a primeira letra após um ponto, ponto de exclamação ou ponto de interrogação seguido de um espaço. Este modo é ideal para notas, mensagens, comentários e outros campos de texto multilinha.

All Characters — tudo maiúsculas

O modo .allCharacters converte todos os caracteres inseridos para maiúsculas. Este modo equivale a manter o Caps Lock premido constantemente e é utilizado para campos onde os dados devem estar em maiúsculas: códigos postais, códigos de país, abreviaturas, números de encomenda. Deve ser usado com precaução, pois o texto em maiúsculas é mais difícil de ler.

ModoDescriçãoExemplo de entradaRecomendação
.noneSem alteraçõesjoao@mail.comEmail, palavras-passe, pesquisa
.wordsCada palavraJoão SilvaNome, endereço, cidade
.sentencesInício de fraseOlá. Como está?Mensagens, notas
.allCharactersTudo maiúsculasABC-123Códigos, índices

Como funciona a letra maiúscula automática

O mecanismo de autocapitalização ativa-se durante o processamento da pressão de tecla, antes de o caractere ser exibido no ecrã. Quando o utilizador pressiona uma tecla, o UITextInputTraits verifica a posição atual do cursor e aplica a regra de conversão de maiúsculas/minúsculas de acordo com o autocapitalizationType definido.

Para o modo .sentences, o sistema monitoriza os caracteres de gatilho: ponto (.), ponto de exclamação (!), ponto de interrogação (?), e o caractere de nova linha ( ) quando ativado. Após detetar um caractere de gatilho e o espaço seguinte, o sistema define um sinalizador de “letra maiúscula esperada” para o próximo caractere inserido.

O modo .words monitoriza o caractere de espaço como gatilho. Após cada espaço, o sistema espera uma letra maiúscula para a próxima palavra. No entanto, há exceções: após um hífen, apóstrofo e outros sinais de pontuação dentro de uma palavra, não é inserida uma maiúscula. Por exemplo, “O’Brien” permanece correto.

Uma característica importante é que a autocapitalização funciona apenas no primeiro caractere de uma palavra. Se o utilizador inserir uma palavra contendo maiúsculas no meio (por exemplo, iPhone ou macOS), o sistema não as altera, uma vez que a conversão se aplica apenas ao primeiro caractere após o gatilho. Isto significa que nomes de marcas e produtos com maiúsculas não padrão não serão afetados.

Quando desativar a autocapitalização

A autocapitalização deve ser desativada em campos onde as maiúsculas são importantes para o processamento correto dos dados. Casos comuns: campos de email, alcunhas e nomes de utilizador, palavras-passe, pesquisas, URLs, códigos de confirmação, IMEI e números de série. Em todos estes casos, as alterações automáticas de maiúsculas causarão erros no processamento do servidor.

Para campos de pesquisa (UISearchBar), a autocapitalização está desativada por defeito, o que corresponde às expectativas do utilizador. Uma consulta de pesquisa pode ser inserida em qualquer formato e o servidor normalmente converte-a para minúsculas por si só. Se a autocapitalização for ativada para a pesquisa, o utilizador terá de corrigir manualmente a maiúscula no início de cada consulta.

Em formulários de registo, o campo de nome de utilizador ou alcunha deve ter o modo .none, pois muitos sistemas diferenciam maiúsculas/minúsculas em nomes de utilizador. O campo de email também deve estar sem autocapitalização — embora os nomes de domínio não sejam sensíveis a maiúsculas/minúsculas, a parte local do email teoricamente pode sê-lo, embora na prática seja raro.

De acordo com a Documentação para Programadores Apple, os campos com secureTextEntry (palavras-passe) herdam automaticamente autocapitalizationType = .none, mesmo que o programador tenha definido explicitamente um valor diferente. O sistema tem a prioridade mais alta para entrada segura e ignora qualquer tentativa de ativar a autocapitalização para um campo de palavra-passe.

Exemplos de configuração em Swift

A configuração da autocapitalização em Swift é feita através da propriedade autocapitalizationType. A propriedade está disponível para UITextField, UITextView e UISearchBar. O valor pode ser definido tanto em código como através do Interface Builder no inspetor de atributos, onde o modo se chama Capitalization.

swift
let nameField = UITextField()
nameField.autocapitalizationType = .words

let emailField = UITextField()
emailField.autocapitalizationType = .none

Para um formulário de contacto, configure cada campo de acordo com a sua semântica: nome — .words, email — .none, mensagem — .sentences. Esta combinação proporciona a melhor experiência do utilizador e minimiza a necessidade de correção manual de maiúsculas/minúsculas.

swift
class ContactFormViewController: UIViewController {

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

    override func viewDidLoad() {
        super.viewDidLoad()
        nameField.autocapitalizationType = .words
        emailField.autocapitalizationType = .none
        messageView.autocapitalizationType = .sentences
    }
}

Para alterações programáticas de modo em tempo de execução, use o delegado UITextFieldDelegate. Por exemplo, se um campo pode ser usado em diferentes contextos, altere autocapitalizationType no método textFieldDidBeginEditing consoante o modo de operação atual do formulário.

swift
func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField === codeField {
        textField.autocapitalizationType = .allCharacters
    }
}

Localização e autocapitalização

A autocapitalização depende do idioma de entrada definido no teclado do utilizador. Diferentes idiomas podem ter regras diferentes de conversão de maiúsculas/minúsculas. Por exemplo, em turco, a letra “i” em maiúscula torna-se “İ” (com ponto), enquanto “I” em minúscula torna-se “ı” (sem ponto). O iOS lida com estas características automaticamente.

Para o russo, a autocapitalização segue as mesmas regras do inglês: maiúscula após um ponto, no início de uma frase e após uma nova linha. Podem surgir problemas com a letra “yo” — embora esteja presente no dicionário do sistema, nem todas as disposições de teclado a mostram na camada principal, e a autocapitalização converte corretamente “yo” para “Yo”.

Para o chinês, japonês e coreano, a autocapitalização não se aplica, pois estas línguas não têm o conceito de maiúsculas/minúsculas. O modo autocapitalizationType é ignorado pelo sistema ao usar os teclados correspondentes, e o campo comporta-se da mesma forma que no modo .none, independentemente do valor definido.

Para o árabe e hebraico, a autocapitalização também não se aplica, pois estas línguas usam o seu próprio sistema de escrita sem distinção entre maiúsculas e minúsculas. O sistema iOS deteta corretamente o idioma de entrada e ignora as definições de autocapitalização para idiomas onde este conceito não existe.

Perguntas frequentes

Pode alterar-se o modo de autocapitalização dinamicamente?

Sim, a propriedade autocapitalizationType pode ser alterada a qualquer momento, mesmo quando o campo já está ativo. A alteração entrará em vigor na próxima entrada de caractere.

O secureTextEntry desativa a autocapitalização?

Sim, para campos com isSecureTextEntry = true, o sistema define automaticamente autocapitalizationType = .none. Este comportamento não pode ser alterado programaticamente.

A autocapitalização funciona para UITextView?

Sim, o UITextView suporta totalmente autocapitalizationType. Isto é especialmente útil para campos multilinha onde o modo .sentences funciona mais naturalmente.

Como é que a autocapitalização afeta as palavras-passe?

Se um campo não estiver marcado como secureTextEntry mas for usado para inserir uma palavra-passe, a autocapitalização pode alterar a palavra-passe. Desative-a sempre em campos onde as maiúsculas sejam importantes.

Há diferença entre o simulador e o dispositivo?

No simulador, a autocapitalização funciona através do teclado físico do Mac e pode comportar-se de forma diferente. Teste num dispositivo real para um comportamento correto.

Resumo

  • Autocapitalização é uma funcionalidade de conversão automática do primeiro caractere para maiúscula em campos de entrada iOS
  • Quatro modos de UITextAutocapitalizationType: none, words, sentences, allCharacters
  • Modo .sentences adequado para a maioria dos campos, ativa após ponto, !, ? e nova linha
  • Modo .none obrigatório para email, palavras-passe, pesquisa e campos sensíveis a maiúsculas/minúsculas
  • Modo .words ótimo para campos de nome, apelido, cidade e endereço
  • Localização — o turco tem regras especiais para a letra İ/ı
  • Recomendação — configure a autocapitalização para cada campo de acordo com a sua semântica

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