在 iOS 的工具栏中包含 UISearchBar
Posted
技术标签:
【中文标题】在 iOS 的工具栏中包含 UISearchBar【英文标题】:Including UISearchBar in toolbar in iOS 【发布时间】:2013-02-25 10:48:52 【问题描述】:我正在尝试将 UISearchBar 放在 .xib 文件中的工具栏上。 我可以将搜索栏拖放到工具栏上,但它显示以下错误。
ControllerName.xib:error: illegal Configuration: UISearchBar embedded in UIBarButtonItems (Only available ub iPad documents).
请指导我如何将 UISearchBar 包含在 xib 的工具栏中。
【问题讨论】:
你会在这里得到一个可能的解决方案:***.com/questions/12309441/… 无需在工具栏中添加搜索栏......您可以添加它并更改它的属性。 【参考方案1】:据我所知,除非您使用IPAD进行开发,否则您不能在IPHONE中的UIToolBar
中直接添加UISearchBar
,您需要添加首先将 UISearchBar 到 customView,然后以编程方式将其添加到工具栏
// your searchbar
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(xposition, yposition, width, height)];
//create a customview and make its frame equal to your searchbar
UIView *searchBarView = [[UIView alloc] initWithFrame:searchBar.frame];
// add your searchbar to the custom view
[searchBarView addSubview:searchBar];
//finally add it to your bar item of the toolbar
UIBarButtonItem *searchBarItem =
[[UIBarButtonItem alloc] initWithCustomView:searchBarView];
【讨论】:
这种方法不会让一个人的应用被拒绝吗?【参考方案2】:按程序:
UIToolbar *Toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[Toolbar sizeToFit];
UISearchBar *testbar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,2,250,38)];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *btnCancel = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarButtonItemStyleBordered target:self action:@selector(ButtonMethod)];
[barItems addObject:btnCancel];
[Toolbar setItems:barItems animated:YES];
[Toolbar addSubview:testbar];
[self.view addSubview:Toolbar];
这里是按钮方法;
-(void)ButtonMethod
// Write Code for ButtonMethod Method
【讨论】:
【参考方案3】:Apple 已在 Xcode 8.2 中修复了此问题,您现在可以执行此 Interface Builder。我认为他们之前禁用了它,因为在 ios 8.0 之前的 iOS 上不允许弹出窗口,并且工具栏中的搜索栏意味着大多数时候都会使用弹出窗口。但是他们忘记在 iOS 8.0 中禁用它。
【讨论】:
以上是关于在 iOS 的工具栏中包含 UISearchBar的主要内容,如果未能解决你的问题,请参考以下文章
UISearchBar 和 TableViewController