这里是关于UITextField的textContentType属性的文档:
使用此属性为键盘和系统提供有关用户输入内容的预期语义含义的信息。例如,您可以指定
UITextContentTypeEmailAddress
用户填写以接收电子邮件确认的文本字段。当您提供有关您希望用户输入到文本输入区域的内容的信息时,系统可以在某些情况下自动选择合适的键盘,并改进键盘更正和主动整合其他文本输入机会。 由于每个文本输入区域的预期语义含义应尽可能具体标识,因此不能将多个值组合为一个textContentType
属性。有关可以使用的可能值,请参阅文本内容类型 ; 默认情况下,此属性的值为nil
。
这看起来很简单,但我无法弄清楚如何使这个实际上做任何事情。我创建了一个简单的演示应用程序,添加了一个文本字段,并设置self.textField.textContentType = UITextContentTypeEmailAddress
。然后我用iOS 10.0.1在iPhone 7上运行它。
至少我希望这会自动选择电子邮件键盘,而不必明确地设置它。它不 - 我得到我的iPhone上的标准键盘。
我也希望它能显示我自己的QuickType建议的电子邮件地址。我在其他地方看到过这种情况 - 如果我在Safari中并且它检测到我正在编辑电子邮件字段,则会将我的家庭和工作电子邮件地址显示为建议。再说一遍,即使文档建议它应该这样做,它也不会这样做。
即使我也设置keyboardType
为UIKeyboardTypeEmailAddress
,我仍然没有得到我期待的QuickType建议。
有一个讨论这种新功能的WWDC讨论会,但是从来没有任何建议说除了设置这个单独的属性之外,你还需要做其他任何事情。
我错过了一些步骤,还是这实际上没有做我所期望的?
发布于 2018-04-10 16:33:24
这最终在iOS 11的第三方应用程序中得到了支持。我有一个使用安装在iOS 11 beta 1上的iOS 10.3 SDK构建的应用程序。它包含带有textContentType = UITextContentTypeEmailAddress
和这些字段的字段,可以正确地在我的联系人卡片上建议两个电子邮件地址。我也有textContentType = UITextContentTypePostalCode
正确建议我的邮政编码的字段。
除了现有类型,iOS装置11还增加了UITextContentTypeUsername
和UITextContentTypePassword
,其可被用于支持密码自动填写为应用程序。
https://stackoverflow.com/questions/-100004382
复制相似问题