Here's the documentation on UITextField's textContentType property
使用此属性为键盘和系统提供有关用户输入内容的预期语义含义的信息。例如,您可以为用户填写以接收电子邮件确认的文本字段指定
UITextContentTypeEmailAddress
。当您提供有关您希望用户在文本输入区域中输入的内容的信息时,系统在某些情况下可以自动选择适当的键盘,并改进键盘更正和与其他文本输入机会的主动集成。
因为应该尽可能明确地标识每个文本输入区域的预期语义含义,所以不能为一个textContentType
属性组合多个值。有关可以使用的可能值,请参见Text Content Types;默认情况下,此属性的值为nil
。
这看起来很简单,但我不知道如何让它真正起作用。我创建了一个简单的演示应用程序,添加了一个文本字段,并设置了self.textField.textContentType = UITextContentTypeEmailAddress
。然后我在装有iOS 10.0.1的iPhone 7上运行了它。
至少,我希望它能自动选择电子邮件键盘,而不必显式设置。它不是这样的--我在我的iPhone上使用标准键盘。
我还希望它能显示我自己的电子邮件地址,以获得QuickType的建议。我在其他地方见过这种情况-如果我在Safari中,它检测到我正在编辑电子邮件字段,它会显示我的家庭和工作电子邮件地址作为建议。同样,它在这里没有这样做,即使文档建议它应该这样做。
即使我还将keyboardType
设置为UIKeyboardTypeEmailAddress
,我仍然得不到我所期望的QuickType建议。
There's a WWDC talk that discusses this new capability,但是除了设置这个属性之外,从来没有任何建议您需要做任何其他事情。
我是否遗漏了某些步骤,或者这实际上并没有完成我所期望的事情?
发布于 2017-06-13 18:18:15
这终于在iOS 11的第三方应用程序中得到了支持。我有一个使用iOS 11 beta 1上安装的iOS 10.3软件开发工具包构建的应用程序。它包含带有textContentType = UITextContentTypeEmailAddress
的字段,这些字段正确地提示了我的联系人卡片上的两个电子邮件地址。我也有textContentType = UITextContentTypePostalCode
的字段,可以正确地建议我的邮政编码。
除了现有的类型之外,iOS 11还增加了UITextContentTypeUsername
和UITextContentTypePassword
,可以用来支持Password AutoFill for Apps。
发布于 2017-10-18 16:19:54
发布于 2020-09-17 04:41:45
我断断续续地尝试通过在UITextField上指定.textContentType
来实现“自动完成”。这似乎是偶然的,我放弃了很多次。今天我重温了这个问题,并学到了一些让它工作(更好)的技巧。
·将.spellCheckingType
和.autocorrectionType
设置为.no
。当这些属性为其他任何属性时,自动完成功能不起作用。更糟糕的是,这些属性的默认值是.default
,所以根本不设置它们会导致不会自动完成。
·keyboardType = .numberPad
似乎根本不支持自动完成。当我切换到.numbersAndPunctuation
时,电话号码的自动补全功能开始工作。
尽管如此,有时文本字段仍然无法每次使用自动完成功能。如果我点击一个不同的领域,然后回到有问题的那个领域,自动补全就会起作用。对此没有任何解释,还有一些神秘的肉我还没有发现。但是上面的建议让我离得更近了……“
https://stackoverflow.com/questions/39633117
复制相似问题