如何获取UITextField的textContentType属性来执行任何操作?

rob*_*cer 23 objective-c uitextfield uikit ios

这是关于UITextField的textContentType属性的文档:

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

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

这看起来非常简单,但我无法弄清楚如何让它实际做任何事情.我创建了一个简单的演示应用程序,添加了一个文本字段和设置self.textField.textContentType = UITextContentTypeEmailAddress.然后我在带有iOS 10.0.1的iPhone 7上运行它.

至少我希望这能自动选择电子邮件键盘,而不必明确设置它.它没有 - 我在我的iPhone上获得标准键盘.

我还希望它能够显示我自己的QuickType建议的电子邮件地址.我已经看到这种情况发生在其他地方 - 如果我在Safari中并且它检测到我正在编辑电子邮件字段,它会显示我的家庭和工作电子邮件地址作为建议.同样,它在这里没有这样做,即使文档表明应该这样做.

即使我还设置了keyboardTypeUIKeyboardTypeEmailAddress,我仍然没有得到QuickType建议,我所期待的.

有一个WWDC演讲讨论了这个新功能,但除了设置这个单一属性之外,你从来没有任何建议需要做任何事情.

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

rob*_*cer 9

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

除了现有类型,iOS装置11还增加了UITextContentTypeUsernameUITextContentTypePassword,其可被用于支持密码自动填写为应用程序.