Тип автокапитализации UITextField - приложение для iPhone - PullRequest
103 голосов
/ 04 августа 2011

Есть ли способ установить autocapitalizationType для UITextField, чтобы первая буква каждого слова была заглавной по умолчанию?

Это пример того, что я хочу

Ответы [ 7 ]

225 голосов
/ 04 августа 2011

Использование textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

Для получения дополнительной информации, пожалуйста, прочитайте: Справочник по протоколу UITextInputTraits

36 голосов
/ 25 мая 2015

То, что мы хотим сделать, это установить текстовое поле autocapitalizationType.

Objective-C:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

Swift:

self.textfield.autocapitalizationType = .words

ЕстьЗдесь есть несколько вариантов:

enter image description here

  • allCharacters - это то же самое, что двойное нажатие клавиши Shift, в основном это capslock.
  • none довольно сам-объяснительно, клавиатура никогда не будет пытаться использовать заглавные буквы.
  • sentences будет пытаться использовать заглавные буквы для следующего слова после знака препинания.
  • words будет пытаться использовать заглавные буквы для каждого нового слова (после пробела), что, кажется, является именно тем, что вы ищете.

Это свойство также можно установить в Инспекторе атрибутов конструктора интерфейса, если выбрано соответствующее текстовое поле:

enter image description here

«Капитализация» - первая опция в этой группе, только что пропущен выбор минимального размера шрифта для текстового поля.

8 голосов
/ 04 августа 2011

Если для свойства capitalization установлено значение «Слова», предложит , чтобы пользователь вводил слова с заглавной буквы.Это может быть отменено пользователем, не сдвигаясь на клавиатуре.Лучше всего использовать заглавные слова в коде:

NSString *text = [myTextField.text capitalizedString];
7 голосов
/ 04 августа 2011

Да. В InterfaceBuilder в инспекторе атрибутов textField можно установить для свойства «Капитализация» значение «Слова».

4 голосов
/ 22 декабря 2014

Есть ответ для Obj-C, я здесь для Swift;

textField.autocapitalizationType = UITextAutocapitalizationType.words

или более короткий путь

textField.autocapitalizationType = .words
1 голос
/ 18 декабря 2014

Вы даже можете сделать это из раскадровки или файла .xib. Просто выберите текстовое поле, и в инспекторе атрибутов справа есть раздел «Капитализация», где вы можете выбрать все, что вам подходит. В вашем случае это заглавные буквы "Слова".

0 голосов
/ 19 февраля 2016

В Xamarin.ios / Monotouch это сработало для меня:

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...