2010-03-08 105 views
3

我想在这里为我做一些投入,替代品就会出现类似的,当你键入邮件应用程序的地址,东西的UITextField或UITextView中,替代实现自动完成出现下降,是(因为没有必要键入完整的单词或地址或电话号码)在iPhone的UITextField在地址簿中的联系人

我知道如何从地址簿框架中获取数据,也知道如何输入文本的UITextField/UITextView的及其代表,但我不知道是什么样的结构,以用于获取和显示数据为用户做他/她的输入。

我知道基本的CoreData,如果这件事,

我希望我能得到一些帮助。

UPDATE(2010/3/10): 我没有问题做一个本地类似的GUI,但我问的算法,有没有人知道什么样的算法最适合这个东西?也许一些二叉树? 或者我应该每次都从coredata获取数据?

感谢

伊格纳西奥

UPDATE(2010/03/28): 我一直很忙,这些天,所以我还没有尝试过UISearchResults但似乎没什么问题。但我不知道是否有必要删除优胜的答案?我认为这是不公平的,我的声誉下降,看不到胜利的答案。 ;(

+0

您是否尝试过我发布的解决方案?...您是否需要任何帮助? – 2010-03-15 14:56:17

回答

7

你并不需要一些先进的算法,做这种事情?如果你想搜索地址簿,那么每次用户输入一个字符时(或者频繁地需要搜索)你都可以这样做。要做到这一点,只需看看UISearchDisplayController课程。我通过查看苹果的TableSearch示例应用程序,学会了如何做几乎确切的事情。

该应用程序使用不同的字段(所有,设备,桌面,便携式)搜索对象列表...所以你可以适应地址簿字段(名字,姓氏,地址...)。唯一需要更改的是地址簿中的搜索。我不确切知道你的要求是什么,但这应该是你需要完成的。如果你对代码有任何问题,请让我知道...但这个例子确实帮了我很大的忙,所以希望它对你有用。

+0

哇。有时候自动接受不会有任何正义(*大部分的时间都可以)。我不能重新奖赏赏金,但我已经删除了简单发布其中一个链接的“获胜”答案。对不起,它是这样。 – 2010-03-17 19:23:21

+1

没关系......感谢您的帮助Marc! – 2010-03-17 19:47:00

1

前一阵子我一直在寻找同样的事情的东西,人们不停地暗示是在Three20项目(google一下)

对于我的需求,这是矫枉过正,因为它需要整个项目建设和我不想整个项目加上它的更多的乐趣,自己:)

尝试它,我结束了从头开始,使我自己:

我开始了一个UIScrollView的子类来包含不同的控制。我将一个UITextField子类化并覆盖“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]; 

希望帮助!

相关问题