这真的让我很不舒服。我看到很多关于将 UISearchBar 放在 UITableView 顶行的信息——但我将 UISearchBar 放在屏幕顶部的工具栏中(在 iPad 上)。我找不到任何关于如何在 iPad 上处理UISearchBar
和UISearchDisplayController
使用 a的信息。任何有关使用 a 的UIPopoverController
更多信息将不胜感激。请帮助解决这个问题,因为我无能为力。UISearchDisplayController
UIPopoverController
使用 IB,我在 iPad 上的 IUView 上放置了一个工具栏。我添加了以下内容:(Search Bar
不是) Search Bar and Search Display
到工具栏。我将选项设置如下:显示取消按钮、显示范围栏、范围按钮标题为:“Title1”和“Title2”(选中 Title2 的单选按钮)。不透明、清除上下文和自动调整大小被选中。我将代表连接Search Bar
到“文件所有者”并将其链接到 IBOutlet theSearchBar
。
在我的viewWillAppear
我有以下内容:
//Just in case:
[theSearchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"Near Me",@"Everywhere",nil]];
//Just in case (again):
[theSearchBar setShowsScopeBar:YES];
//doesn't seem to do anything:
//[theSearchBar sizeToFit];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:theSearchBar contentsController:self];
[self setSearchDisplayController:searchDisplayController];
[searchDisplayController setDelegate:self];
[searchDisplayController setSearchResultsDataSource:self];
//again--does not seem to do anything..but people have suggested it:
[theSearchBar sizeToFit];
好吧,到目前为止,我想,太好了。因此,我将 File's Owner.m
文件作为代表:UISearchBarDelegate, UISearchDisplayDelegate
.
我的问题:我还没有实现进行搜索所需的代表,但仍然......当我点击搜索字段时,我不应该看到scopeBar
搜索字段旁边的 吗?只是为了让你知道我确实看到了我输入的字符的日志,所以代表正在工作。
这是我用来检查 IB 是否真的将 Scope Bar (UISegementedControl) 放在搜索栏中的例程:
for (UIView *v in theSearchBar.subviews)
{
if ([v isMemberOfClass:[UISegmentedControl class]])
{
// You've got the segmented control!
UISegmentedControl *scope = (UISegmentedControl *)v;
// Do your thing here...
NSLog(@"Found Scope: '%@'\n",scope);
NSLog(@"Scope Segments: '%d'\n",[v numberOfSegments]);
}
}
由此可见:
[30013:207] Found Scope: '<UISegmentedControl: 0x68a06b0; frame = (0 0; 200 44); opaque = NO; layer = <CALayer: 0x68a0600>>'
[30013:207] Scope Segments: '2'
所以,我知道有两个部分。我也知道他们没有出现......我做错了什么?
为什么没有出现范围栏?当我在搜索中键入第一个字符时,结果 UIPopoverController 出现标题“结果”和“未找到结果”(当然)......但没有范围栏。(并不是说我期望“未找到任何结果”之外的任何内容。
我想知道范围栏应该出现在哪里......在 UIPopover 的 titleView 中?在搜索区域右侧的工具栏中?在哪里?