ios uitextfield

ios - Capitalización de UITextField



uitextfielddelegate (7)

¿Está utilizando el simulador o un dispositivo real? Si está utilizando el simulador, la carcasa respetará el estado de cambio y bloqueo de mayúsculas del teclado físico en su computadora.

Abre la aplicación de calendario de Apple. Cuando nombra una nueva cita, automáticamente pone en mayúscula la primera letra. No utiliza el estilo de ''corrección'' swap-out para hacer esto.

Por mi vida no puedo reproducir este comportamiento. En IB, he establecido la Capitalización de UITextField en Word, pero parece que no tiene ningún efecto. Si enciendo la corrección, cambiará la palabra con una versión en mayúscula, pero esto no es del todo correcto.

¿Debo manejar esto en el código, presionando cada tecla presionada? Esto es probablemente trivial, excepto que estoy preocupado por todos los casos de esquina que fallaré, como cuando el usuario usa manualmente ''shift'' para negar el uso de mayúsculas, o elimina y vuelve a escribir, en cuyo caso no debería capitalizar .

¿O tal vez hay una manera de simplemente cargar el campo de texto con la tecla shift presionada? ¿Es esta la forma común de implementarlo?


Acabo de verificar esto en mi aplicación y ya lo hizo Capitalización de forma predeterminada. el comportamiento no está determinado por el código de su aplicación, sino por la configuración global del iphone.

iniciar la configuración de iOS . vaya a General , luego a Teclado , allí el usuario tiene la opción de "Auto-Capitalization" . esta apagado?

en mi caso, estaba activada, por lo que mi aplicación y el calendario tenían esta función, cuando la desactivo, ambas aplicaciones carecen de esta función porque el usuario decidió que no quería esta función.


Aquí hay una actualización de Swift 2.0 para todos los personajes:

SomeTextField.autocapitalizationType = UITextAutocapitalizationType.AllCharacters


Ciertos teclados ignoran el tipo de mayúsculas

Algunos tipos de teclado no admiten el uso de mayúsculas automáticas. Específicamente, esta opción se ignora si el valor en la propiedad keyboardType se establece en UIKeyboardTypeNumberPad, UIKeyboardTypePhonePad o UIKeyboardTypeNamePhonePad.

Más detalles sobre la referencia del desarrollador.


Establecer el uso de mayúsculas en Word debería hacer esto, por lo que otra cosa va mal. ¿Está seguro de que está activado en el UITextField real que está probando? ¿Estás seguro de que quizás no lo estés anulando en el código de alguna manera? Puedes configurarlo programáticamente con:

[myTextField setAutocapitalizationType:UITextAutocapitalizationTypeWords];

También hay una excepción (según los documentos ) donde se ignorará esto:

Algunos tipos de teclado no admiten el uso de mayúsculas automáticas. Específicamente, esta opción se ignora si el valor en la propiedad keyboardType se establece en UIKeyboardTypeNumberPad, UIKeyboardTypePhonePad o UIKeyboardTypeNamePhonePad.

¿Esto aplica para ti?


Inhabilitación de mayúsculas

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;

Para capitalizar todos los personajes

textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;

Para capitalizar el primer carácter de la oración

textField.autocapitalizationType = UITextAutocapitalizationTypeSentences;

Para el uso de mayúsculas en el primer carácter de todas las palabras en Sentense

textField.autocapitalizationType = UITextAutocapitalizationTypeWords;


Tuve el mismo problema con las propiedades de capitalización, acabo de cambiar el tipo de teclado a Predeterminado y todo comienza a funcionar como se esperaba. En mi caso, anteriormente había establecido keyboardType en NamePhonePad que no admite el uso de mayúsculas automáticas.