搜索栏ResignFirstResponder隐藏项目

时间:2013-08-26 10:18:08

标签: iphone ios uisearchbar resignfirstresponder

我的应用中有此搜索栏。请参阅播放,下一个和上一个按钮。

当我搜索并点击搜索项目中的一首歌时,搜索栏的第一响应者会隐藏我的按钮,即播放,下一个和上一个按钮。

我正在使用此代码

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

MPMediaItem * song;
_nowPlayingIndex=indexPath.row;

if (tableView == self.searchDisplayController.searchResultsTableView)
    song = searchResults[_nowPlayingIndex];
else
    song = _songs[_nowPlayingIndex];

[self.musicPlayer setNowPlayingItem:song];
[self.musicPlayer play];
_playButton.hidden=true;
_pauseButton.hidden=false;

[_mySearchBar resignFirstResponder];

}

为什么隐藏我的按钮?

3 个答案:

答案 0 :(得分:1)

步骤1:您可以做的是显示和隐藏这些按钮或任何其他项目的不同功能。

步骤2:然后,您可以在需要的地方调用这些功能。例如每次你辞职后都要回应。

步骤3:您可以尝试将表格视图框架设置为距离代码较低的高度。然后测试这个东西。因为我认为桌面视图的高度会导致隐藏这些按钮 例如[self.tableView setFrame: CGRectMake(self.view.frame.origin.x, self.searchSong.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height - "button.height" - "navbar.height")];

步骤4:您还应该调试代码,以便执行resignFirstResponder时...请检查按钮的框架是什么。通过这种方式,您将了解自己的位置。

它只是另一种解决问题的方法。如果您仍有疑问,可以提问。我希望它有效。 :)

答案 1 :(得分:1)

这就是我要找的东西

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView{
CGRect tableFrame= self.searchDisplayController.searchResultsTableView.frame;
tableFrame.size.height=200;
tableFrame.size.width=300;
[self.searchDisplayController.searchResultsTableView setFrame:tableFrame];
[self.searchDisplayController.searchResultsTableView reloadData];

}

和[[myButton superview] bringSubviewToFront:myButton];把它们带到前面。

答案 2 :(得分:0)

当您搜索任何内容时,将代码应用于您的按钮是搜索代理

 [grayBar bringSubViewToFront];

 [yourButton1 bringSubViewToFront];
 [yourButton2 bringSubViewToFront];
 [yourButton3 bringSubViewToFront];

希望这会有所帮助