UISearchDisplayController非常方便,实现搜索非常简单.
但是,当我在我的应用程序中,我希望显示搜索结果为空搜索字符串但选择范围按钮时,我遇到了问题.
似乎必须输入一些搜索字符串才能使搜索结果表初始化和显示.
有没有办法在用户选择范围但未输入搜索词后立即显示搜索结果?
谢谢比尔
我有一个UIViewController分组UITableView为属性.我实例化UITableView代码,不使用IB.我想联系UISearchDisplayController它,但无法找到任何可以做到这一点的例子.
这就是我所拥有的.//已在头文件中实现了UISearchDisplayDelegate
//SearchBar
UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 45)];
searchBar.barStyle=UIBarStyleBlackTranslucent;
searchBar.showsCancelButton=NO;
searchBar.autocorrectionType=UITextAutocorrectionTypeNo;
searchBar.autocapitalizationType=UITextAutocapitalizationTypeNone;
searchBar.delegate=self;
UISearchDisplayController *mySearchDisplayController = [[UISearchDisplayController alloc ]initWithSearchBar:searchBar contentsController:self];
self.searchDisplayController = mySearchDisplayController; //Error here ?? self.searchDisplayController is ReadOnly and can't assign
[self.searchDisplayController setDelegate:self];
[self.searchDisplayController setSearchResultsDataSource:self];
[mySearchDisplayController release];
[myDisplayController release];
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,searchDisplayController UIViewController似乎是readonly并且我无法挂钩myDisplayController它.我真的不确定这是否是正确的方法.
我一直在寻找谷歌周围的一些提示或教程如何使用UISearchDisplayControllerin UIViewController.我能找到的所有例子都是如何将它实现为UITableViewController使用IB,这不是我想要使用它的方式.
任何人都可以解释我怎么能让这个工作?
iphone cocoa-touch uiviewcontroller uisearchdisplaycontroller
我正在使用UISearchDisplayController让用户搜索大学校园内的建筑物列表.有时,用户将确切地知道他们想要的建筑物,输入建筑物的编号,然后该建筑物将成为UITableView中显示的唯一建筑物结果.此时,如果用户继续点击键盘上的"搜索",则键盘会在屏幕上显示动画,然后用户必须再次点击UITableView中的唯一项目以发送到地图上的某个点那栋楼的位置.
我的问题是,有没有办法在用户点击UISearchDisplayController内键盘上的"搜索"按钮时收到通知,这样我就可以检查是否只有一个结果,如果是,请直接让用户结果,而不是要求他们明确地进行第二次点击?我查看了UISearchDisplayDelegate提供的方法,但看不到任何相关内容.
我有tableView searchDisplayController.在这台电视中,我必须使用数组(名字/姓氏),我可以使用谓词使用此代码按名称过滤此值
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.firstName beginswith[cd]%@",searchString];
self.filteredAllClients = [AllClients filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
我可以使用两个谓词过滤此数组吗?
例如:我有名字(Jack Stone,Mike Rango)
如果我进入'J'并且我应该得到过滤阵列 - 杰克斯通
但如果我进入'R'并且我应该进入过滤区域 - Mike Rango?
我有一个UISearchBar与链接UISearchDisplayController在的标题UITableView中iOS7.
我将UISearchBar风格设置为最小.当searchdisplaycontroller显示他的表时,它具有下图的行为.该表在搜索栏上方滚动.当我将tableview的样式切换为Prominent时,表格会按预期在搜索栏下滚动.
这是一个bug还是预期会出现这种情况?

我有一个带有a UITableViewController作为内容视图控制器的popover .表视图有一个UISearchBar标题视图.
现在,在iOS 6上,当UISearchDisplayController活跃时,一切看起来都很好.但是,在iOS 7上,搜索栏上方会有一个额外的空间.

那么如何摆脱iOS 7搜索栏上方的这个额外空间呢?
uisearchbar uisearchdisplaycontroller uipopovercontroller ios ios7
我正在使用以下代码在detailViewController(我的第二个视图)中隐藏我的navigationBar,当我从MasterViewController(我的第一个视图)中点击任何一个对象时,它工作得很好.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用searchDisplayController过滤masterViewController中的表列表并从结果中点击任何对象时,detailView中的navigationBar不会被隐藏...
如果我使用searchDisplayController,是否还需要做额外的工作来隐藏navigationBar?
对于Debug,我在setNavigationBarHidden行上设置断点:YES,即使我通过搜索结果转到detailViewController,应用程序也会遇到行.
我有一个UISearchDisplayController,它在tableview中显示结果.当我尝试滚动tableview时,contentsize正好是_keyboardHeight比它应该更高.这导致错误的底部偏移.tableview中有大于50个项目,因此下面不应有空格

我正在尝试添加搜索到我的UITableViewController通道UISearchDisplayController,但是当搜索开始和结束时,我看到一个非常奇怪的动画故障.
在iPhone上,导航栏中的动画工作正常.但是,在结束搜索时,导航栏会在向下设置动画时滞后于搜索栏.这会导致在导航栏和搜索栏之间显示白条.在iPad上,动画完全搞砸了.
和
如上面的视频所示,股票应用程序不会受到这些动画故障的影响.是否有人有任何想法导致问题?
我正在UISearchDisplayController"Master"视图控制器中创建以下内容.
- (void)viewDidLoad
{
[super viewDidLoad];
UISearchBar* searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
searchBar.delegate = self;
self.tableView.tableHeaderView = searchBar;
self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
self.searchController.delegate = self;
self.searchController.searchResultsDataSource = self;
self.searchController.searchResultsDelegate = self;
}
Run Code Online (Sandbox Code Playgroud)
我也试过使用Storyboard这样做,但会出现相同的动画故障.
我正在使用标签栏应用程序,其中一个标签有一个连接到UISearchBar的UISearchDisplayController.它全部连接在NIB上并且正在工作.当我点击搜索栏时,"范围"和"取消"按钮会等等,搜索代理会正确更新结果表.
但是,我正在尝试在viewDidLoad消息中实现相同的代码而不是NIB,但是当我从NIB中删除搜索显示控制器并取消注释我的代码以在函数中创建相同的控制器时,它不起作用.就好像有一些基本的连接没有被创建,所以我的所有搜索委托功能都没有被调用.
这是我的工作搜索显示控制器的NIB版本.它连接到搜索栏,UINavigationController子类(MASearchController)和它的根视图被连接起来searchContentsController.
alt text http://img192.imageshack.us/img192/3050/screenshot20100307at304.png
现在这是您希望在代码中创建相同的内容,对吧?我正在做的是将UISearchBar留在NIB中,以便在代码中一次消除一块拼图.
// [MASearchController viewDidLoad]
UISearchDisplayController *searchController = [[[UISearchDisplayController alloc]
initWithSearchBar:searchBar
contentsController:[[self viewControllers] objectAtIndex:0]] autorelease];
[searchController setDelegate:self];
[searchController setSearchResultsDelegate:self];
[searchController setSearchResultsDataSource:self];
Run Code Online (Sandbox Code Playgroud)
我在运行时检查了所有对象,他们都检查了.基本上我已经从NIB中删除了搜索显示控制器,然后输入代码在viewDidLoad消息中创建它.
为什么这不起作用?搜索键盘出现但我的搜索和按钮动画功能都不起作用???
iphone search objective-c uisearchbar uisearchdisplaycontroller
iphone ×6
ios ×5
objective-c ×4
ios7 ×3
uisearchbar ×2
cocoa-touch ×1
search ×1
uitableview ×1
xcode ×1