Здесь документация по свойству свойства UITextField textContentType:
Используйте это свойство, чтобы предоставить клавиатуре и системной информации о ожидаемом семантическом значении для содержимого, которое вводит пользователь. Например, вы можете указать
UITextContentTypeEmailAddress
для текстового поля, которое пользователи заполняют, чтобы получить подтверждение по электронной почте. Когда вы предоставляете эту информацию о содержимом, которое, как вы ожидаете, пользователи будут вводить в текстовую область, система может в некоторых случаях автоматически выбирать подходящую клавиатуру и улучшать корректировки клавиатуры и проводить активную интеграцию с другими возможностями ввода текста.Поскольку ожидаемое семантическое значение для каждой области ввода текста должно быть идентифицировано как можно более конкретно, вы не можете комбинировать несколько значений для одного свойства
textContentType
. Для возможных значений, которые вы можете использовать, см. Типы текстового содержимого; по умолчанию значение этого свойства равноnil
.
Это кажется довольно простым, но я не могу понять, как это сделать на самом деле. Я создал простое демо-приложение, добавил текстовое поле и установил self.textField.textContentType = UITextContentTypeEmailAddress
. Затем я запустил его на iPhone 7 с iOS 10.0.1.
По крайней мере, я ожидал, что это автоматически выберет клавиатуру электронной почты, не указывая явно ее. Это не так - я получаю стандартную клавиатуру на своем iPhone.
Я также ожидал, что он покажет мои собственные адреса электронной почты для предложений QuickType. Я видел, как это происходит в другом месте - если я в Safari, и он обнаруживает, что я редактирую поле электронной почты, он показывает мои домашние и рабочие адреса электронной почты в качестве предложений. Опять же, это не делает этого здесь, даже если документация предполагает, что он должен.
Даже если я также установил keyboardType
в UIKeyboardTypeEmailAddress
, я все равно не получаю предложения QuickType, которые я ожидал.
Там говорится о WWDC, в котором обсуждаются эти новые возможности, но никогда не было никаких предположений о том, что вам нужно что-то делать, кроме как установить это единственное свойство.
Я пропустил какой-то шаг, или это на самом деле не делает то, что я ожидаю?