2016-09-22 174 views
17

Here's the documentation on UITextField's textContentType property如何获得UITextField的textContentType属性来执行任何操作?

使用这个属性给键盘和有关用户输入内容的预期语义系统信息。例如,您可以为用户填写的文本字段指定UITextContentTypeEmailAddress以接收电子邮件确认。当您提供有关您希望用户输入到文本输入区域的内容的信息时,系统可以在某些情况下自动选择合适的键盘,并改进键盘更正和主动整合其他文本输入机会。

由于每个文本输入区域的预期语义应尽可能具体标识,因此不能将多个值组合为一个textContentType属性。有关可以使用的可能值,请参阅Text Content Types;默认情况下,此属性的值为nil

这似乎很简单,但我不知道如何使这实际上做任何事情。我创建了一个简单的演示应用程序,添加了一个文本字段,并设置了self.textField.textContentType = UITextContentTypeEmailAddress。然后我用iOS 10.0.1在iPhone 7上运行它。

至少我期望它能够自动选择电子邮件键盘,而不必明确地设置它。它不 - 我得到我的iPhone上的标准键盘。

我还希望它显示我自己的QuickType建议的电子邮件地址。我在其他地方看到过这种情况 - 如果我在Safari中,并且它检测到我在编辑电子邮件字段,则会将我的家庭和工作电子邮件地址显示为建议。再说一遍,即使文档建议它应该这样做,它也不会这样做。

即使我也设置keyboardTypeUIKeyboardTypeEmailAddress,我仍然没有得到我期待的QuickType建议。

There's a WWDC talk that discusses this new capability,但从来没有任何建议您需要做任何事情,除了设置这个单一的属性。

我错过了一些步骤,还是这实际上没有做我所期待的?

+1

FWIW,我没有看到它要么工作。我将它设置为输入“地点”或位置,或者对于我们输入地名和AFAICT的字段的任何选项,它都没有影响。 – Hunter

+0

不能在这里工作,不能想到任何其他选项或应用程序的元数据,将使其工作:(在Safari中工作。第三方应用程序:在优步WWDC的demo'd - 我想知道,它仍然工作在优步? –

+0

仍然在iOS 10.2中破碎 – fabb

回答

5

这最终在iOS 11的第三方应用程序中得到支持。我有一个使用安装在iOS 11 beta 1上的iOS 10.3 SDK构建的应用程序。它包含textContentType = UITextContentTypeEmailAddress的字段,这些字段正确地建议我的联系人卡片上的两个电子邮件地址。我也有与textContentType = UITextContentTypePostalCode正确地建议我的邮政编码的字段。

除了现有的类型,iOS 11还增加了UITextContentTypeUsernameUITextContentTypePassword,可用于支持Password AutoFill for Apps

相关问题