【问题标题】:How to create a UITextField to enter multiple email addresses?如何创建 UITextField 以输入多个电子邮件地址?
【发布时间】:2012-10-10 05:31:46
【问题描述】:
我有一个UITextField,我希望它能够输入多个电子邮件地址。我希望将功能作为MailComposer 中的行。
我真正想要的是当用户点击一个按钮时,我想显示地址选择器来选择电子邮件
是否有任何预定义的 pickerView ?
我该怎么做?
【问题讨论】:
标签:
iphone
objective-c
ios
cocoa-touch
【解决方案1】:
一种方法可能是在 UIView 之上定义一个透明的 UITextField,该 UIView 可以将其他视图作为子视图。当您开始输入地址时,您会在 UITextFieldDelegate 中获得 textField:shouldChangeCharactersInRange:replacementString:。如果部分字符串匹配,那么您可以为每个匹配的地址创建一个新的 UIView 并动态地将它们显示为要单击/点击以接受的选项。您可能会使用resizableImageWithCapInsets 创建名称所在的气泡以允许可变长度。这个列表可能会随着每个字符而改变。
如果选择被接受,那么您会将包含接受地址的 UIView 移动到地址行的右侧位置,如果没有先前的地址,则移动到左侧,如果有,则移动到最后一个地址之后。届时显示的任何其他地址都将被取消。动画在这里可能看起来不错。然后 UITextField 的框架将被更改,以便在 UIView 显示接受的地址之后进行文本输入。这一切看起来都像一个 UITextField,但实际上不是。
要做的其他事情是为每个地址添加一个 X 按钮,以便将其删除。如果你有一个好的电子邮件地址解析器,你甚至可以在输入文本时解析它,将文本变成气泡并将它们移动到左边并接受地址。