É possível alterar programaticamente o tipo de teclado de um campo uitext para que algo assim seja possível:
if(user is prompted for numeric input only)
[textField setKeyboardType: @"Number Pad"];
if(user is prompted for alphanumeric input)
[textField setKeyboardType: @"Default"];
iphone
ios
uitextfield
uikeyboard
eric.mitchell
fonte
fonte
doozy
para algo que é mais comumente compreensível .. manter em mente SO é um site internacional e não uma norte-americana umRespostas:
Existe uma
keyboardType
propriedade paraUITextField
:Seu código deve ler
fonte
UITextInputTraits
protocolo queUITextField
adota.É importante notar que, se você deseja que um campo focado no momento atualize o tipo de teclado imediatamente, há uma etapa extra:
Sem a chamada para
reloadInputViews
, o teclado não será alterado até que o campo selecionado (o primeiro respondedor ) perca e recupere o foco.Uma lista completa dos
UIKeyboardType
valores pode ser encontrada aqui , ou:fonte
[textField reloadInputViews];
isso que estava faltando. Obrigado!reloadInputViews
também funciona paraUITextInput
implementações sob medida .Sim, você pode, por exemplo:
fonte
Isso é rápido. Além disso, para que isso funcione corretamente, ele deve ser definido após o
textFieldView.delegate = self
fonte
para fazer com que o campo de texto aceite alfanumérico apenas defina esta propriedade
fonte
fonte
Swift 4
Se você estiver tentando alterar o tipo de teclado quando uma condição for atendida, siga isto. Por exemplo: Se quisermos alterar o tipo de teclado de Padrão para Teclado numérico quando a contagem do campo de texto for 4 ou 5, faça o seguinte:
fonte
Há uma propriedade para isso chamada
keyboardType
. O que você deseja fazer é substituir o local onde você possui as strings@"Number Pad
e@"Default
porUIKeyboardTypeNumberPad
eUIKeyboardTypeDefault
.Seu novo código deve ser algo como isto:
Boa sorte!
fonte
para pessoas que desejam usar
UIDatePicker
como entrada:fonte
Este é o
UIKeyboardTypes
Swift 3:Este é um exemplo para usar um tipo de teclado da lista:
fonte
Alterar programaticamente o tipo de teclado UITextField swift 3.0
fonte
Aqui está o tipo de teclado no Swift 4.2
fonte