在UITableView中搜索UISearchBar,如iPod App

时间:2009-11-29 06:38:54

标签: iphone objective-c uitableview

我正在努力在UITableView上方创建一个搜索栏,就像在iPod App或Mail应用程序中一样。在iPod应用程序中,当您开始在搜索栏中输入时,导航控制器将消失,UISearchBar将显示在顶部。动画制作并不是太糟糕,但我想确保它的行为与Apple应用程序中的其他搜索栏完全一样。到目前为止,我遇到了两个问题:

  1. 当我在键盘上点击“搜索”或在桌面视图上滚动时,键盘会被解雇: [searchbar resignFirstResponder];
    这有效,但搜索栏上的取消按钮被禁用。在搜索栏重新签署第一响应者后,如何保持搜索栏的取消按钮不被禁用?

  2. 在搜索栏失去焦点后,用户可以自由地在UITableView中滚动。现在,搜索栏被添加为UITableView的tableHeaderView。这意味着当桌面视图滚动时,搜索栏会在屏幕上滚动。有没有办法让搜索栏保持在UITableView的顶部并且不滚动?我在UITableView上找不到任何可以让tableHeaderView悬停在顶部的属性。

  3. 非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:4)

查看文档附带的SimpleSearchDisplay示例应用程序。这正是你要找的。基本上,你甚至不需要做明确的动画。 UISearchDisplayController 为您处理。

这是您的位置。

/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone3_0.iPhoneLibrary.docset/Contents/Resources/Documents/samplecode/SimpleSearchDisplay/

答案 1 :(得分:3)

使用SDK 3.1,SimpleSearchDisplay似乎已被TableSearch取代:

http://developer.apple.com/iphone/library/samplecode/TableSearch/index.html

或本地:

文件:///Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone3_1.iPhoneLibrary.docset/Contents/Resources/Documents/samplecode/TableSearch/index.html < / p>