在iPhone的UITextField实现自动完成在地址簿中的联系人
-
18-09-2019 - |
题
我想在这里为我做一些投入,替代品就会出现类似的,当你键入邮件应用程序的地址,替代品出现下降,并有可能挖掘他们的东西的UITextField或UITextView中因此得到更好的输入用户界面(因为没有必要键入完整的字或地址或电话号码)
我不知道如何从地址簿框架中获取数据,还如何的UITextField / UITextView中及其代表的输入文字,但我不知道该用什么样的结构包括获取和显示数据为用户做他/她的输入。
我知道基本CoreData如果此事项,
我希望我能得到一些帮助。
UPDATE(2010年3月10日): 我没有问题做出类似天然的GUI,但我问的是算法,是否有任何身体知道什么样的算法是最适合这件事情?也许有些二叉树? 或者我应该从coredata每次取数据?
由于
伊格纳西奥
UPDATE(2010/03/28): 我一直很忙,这些天,所以我还没有尝试过UISearchResults但似乎没什么问题。但我不知道在那里的美酒答案缺失的必然?我不认为这是公平的我的声誉下降,无法看到获胜的答案。 ;(
解决方案
您并不需要一些先进的算法,做这种事情......如果你想搜索地址簿,那么您可以在一个字符每次这样做的用户类型(或频繁但你需要SEACH )。要做到这一点,只需要看看 UISearchDisplayController 类。我学会了如何通过看苹果的 TableSearch 做几乎是千真万确的事情一>示例应用程序。
这是应用程序搜索使用不同的领域(所有,设备,台式,便携式)...所以你能适应它通讯簿领域(姓氏,姓名,地址......)对象的列表。您需要更改的唯一事情是通讯簿中的搜索。我不知道你的要求问什么了,但是这应该是你所需要完成它。如果您有任何代码的麻烦让我知道......但这个例子真是帮了我,所以希望它为你工作。
其他提示
我一直在寻找同样的事情,前一段时间。一些人不停地暗示是Three20项目(谷歌它)。
有关我的需求,这是矫枉过正,因为它需要整个项目建设,我不想整个项目。加上它的更多的乐趣,自己试试吧:)
我结束了从头开始,使我自己的:
我开始了一个UIScrollView的子类来包含不同的控件。我子类为UITextField和overrided“editingRectForBounds”支持多行。其中显示接触位仅仅是一个具有背景颜色的的UITableView:
[UIColor colorWithRed:0.92 green:0.92 blue:0.92 alpha:1];
和分离器的颜色:
[UIColor colorWithWhite:0.85 alpha:1];
这和使用阴影使得它看起来像它的的UITextField下稍凹陷。我创建一个自定义的UIView的阴影,一旦加载它并在需要时隐藏它,但它的作品同样出色的图像。
最后,我提出的蓝色药片形状,其具有一个自定义的UIView可以拦截“的touchesBegan”知道什么时候他们应该改变颜色。
添加它们是计算一个简单的事情,他们需要去使用:
[myTextField addSubview:myBlueView];
希望帮助!