我正在编写一个应用程序,它将定期打开一封电子邮件,供用户向 iOS 中预定的联系人列表发送电子邮件。我有一个文本字段,我将允许用户通过从联系人列表中选择电子邮件地址和手动输入的方式将电子邮件地址添加到文本字段。手动输入时,我希望能够自动填写通讯录中的电子邮件地址,就像邮件应用程序中的“收件人”字段一样。我怎样才能做到这个自动完成?
最佳答案
您将首先构建一个包含可能的电子邮件地址和您想要匹配的字符串的字典(即,名称可能是 Fred Smith,但电子邮件可能是 [email protected] )。
您的“收件人”条目将是一个 UITextField,为了获取具有自动完成功能的当前字符串,您将填充一些列表并将其显示在 UITextField 下。
要在用户键入时获取字符,请实现此委托(delegate)方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
新字符串将是当前字符串 (myTextField.text),其中字符“范围”被替换为字符串。结果是用于更新匹配列表的字符串。只需从此方法返回 YES 即可。
当用户点击列表中的联系人时,您只需将“收件人”文本替换为该人选择的任何联系人即可。
关于iOS:如何模仿 'to' 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045261/