Dim*_*tri 5 email-address uitextfield ios inputaccessoryview swift
在我们的 iOS / iPhone 应用程序之一中,我们需要在注册过程中显示用户配置的电子邮件地址作为建议。有多个应用程序将电子邮件地址显示为键盘输入附件视图中的固定按钮。以 Yelp 应用程序为例(配备 iOS 13.4 的 iPhone 8)
我无法弄清楚如何使用内置方法启用此功能。我尝试将 textContentType、keyboardType 和 auto CorrectionType 设置为正确的值,如我能找到的有关此主题的其他堆栈溢出文章中所述。
这是我的代码
override func viewDidLoad() {
super.viewDidLoad()
let email = UITextField(frame: CGRect(x: 10, y: 60, width: 300, height: 40))
email.placeholder = "Enter email address here"
email.font = UIFont.systemFont(ofSize: 15)
email.borderStyle = UITextField.BorderStyle.roundedRect
email.clearButtonMode = UITextField.ViewMode.whileEditing
email.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center
email.returnKeyType = .continue
email.keyboardType = .emailAddress
email.textContentType = .emailAddress
email.autocorrectionType = .yes
email.autocapitalizationType = .none
view.addSubview(email)
}
Run Code Online (Sandbox Code Playgroud)
这是我在运行 Yelp 应用程序时在运行 iOS 13.4 的同一台 iPhone 8 上的样子:
没有电子邮件地址建议。
奇怪的是,在我的 iPad 上运行的同一个应用程序会以不同的方式显示建议:
如何以与 Yelp 相同的方式显示用户的电子邮件地址?是否有我必须使用的特殊 UITextField 视图,或者是否有其他方法来获取电子邮件地址并将其显示在自定义文本附件视图中?
感谢您的帮助!
经过对具有正确行为的其他应用程序的一些研究后,我找到了上述问题的解决方案。
苹果在后台做了一点魔法,称为“启发式”,但苹果没有描述它。
我们的问题是,只有一个 UITextField 要求提供电子邮件地址,并且没有上下文。
需要这样做:
我们的解决方案是将密码文本字段隐藏在电子邮件文本字段下方。密码文本字段必须位于电子邮件文本字段下方至少 1 个点,才能使其可编辑。我们只是在电子邮件和密码之间放置一个视图来隐藏它。
编辑或选择电子邮件地址后,我们以动画方式将密码文本字段移至电子邮件文本字段下方。
这让我的大脑开始融化,但至少我们找到了一个适合我们的解决方案。
| 归档时间: |
|
| 查看次数: |
5340 次 |
| 最近记录: |