Как я могу получить свойство UITextField textContentType, чтобы что-нибудь сделать?
Здесь документация по свойству свойства UITextField textContentType:
Используйте это свойство, чтобы предоставить клавиатуре и системной информации о ожидаемом семантическом значении для содержимого, которое вводит пользователь. Например, вы можете указать UITextContentTypeEmailAddress
для текстового поля, которое пользователи заполняют, чтобы получить подтверждение по электронной почте. Когда вы предоставляете эту информацию о содержимом, которое, как вы ожидаете, пользователи будут вводить в текстовую область, система может в некоторых случаях автоматически выбирать подходящую клавиатуру и улучшать корректировки клавиатуры и проводить активную интеграцию с другими возможностями ввода текста.
Поскольку ожидаемое семантическое значение для каждой области ввода текста должно быть идентифицировано как можно более конкретно, вы не можете комбинировать несколько значений для одного свойства textContentType
. Для возможных значений, которые вы можете использовать, см. Типы текстового содержимого; по умолчанию значение этого свойства равно nil
.
Это кажется довольно простым, но я не могу понять, как это сделать на самом деле. Я создал простое демо-приложение, добавил текстовое поле и установил self.textField.textContentType = UITextContentTypeEmailAddress
. Затем я запустил его на iPhone 7 с iOS 10.0.1.
По крайней мере, я ожидал, что это автоматически выберет клавиатуру электронной почты, не указывая явно ее. Это не так - я получаю стандартную клавиатуру на своем iPhone.
Я также ожидал, что он покажет мои собственные адреса электронной почты для предложений QuickType. Я видел, как это происходит в другом месте - если я в Safari, и он обнаруживает, что я редактирую поле электронной почты, он показывает мои домашние и рабочие адреса электронной почты в качестве предложений. Опять же, это не делает этого здесь, даже если документация предполагает, что он должен.
Даже если я также установил keyboardType
в UIKeyboardTypeEmailAddress
, я все равно не получаю предложения QuickType, которые я ожидал.
Там говорится о WWDC, в котором обсуждаются эти новые возможности, но никогда не было никаких предположений о том, что вам нужно что-то делать, кроме как установить это единственное свойство.
Я пропустил какой-то шаг, или это на самом деле не делает то, что я ожидаю?
Ответы
Ответ 1
Наконец, это поддерживается сторонними приложениями в iOS 11. У меня есть приложение, построенное с использованием SDK iOS 10.3, установленного на бета-версии iOS 11. Оно включает в себя поля с textContentType = UITextContentTypeEmailAddress
, и они правильно предлагают два адреса электронной почты на моем контакте карта. У меня также есть поля с textContentType = UITextContentTypePostalCode
, которые правильно предлагают мой почтовый индекс.
В дополнение к существующим типам, iOS 11 также добавляет UITextContentTypeUsername
и UITextContentTypePassword
, которые могут использоваться для поддержки Password AutoFill для приложений.
Ответ 2
Просто для информации (потому что я едва мог найти его в документах google и apple):
В новом ios apple появились новые функции (посмотрите на изображение).
Вот описание описание и wwdc о них.
![введите описание изображения здесь]()