ユーザーが検索バーで編集を開始したときにページのナビゲーションバーを非表示にしたいのですが、キャンセルボタンも表示したいのですが。
完了しましたが、UISearchBarを表示したときにキャンセルボタンにアクセスできません。ありがとうございました。
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
self.navigationController.navigationBar.hidden=TRUE;
CGRect r=self.view.frame;
r.Origin.y=-44;
r.size.height+=44;
self.view.frame=r;
searchBar.showsCancelButton=TRUE;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
self.navigationController.navigationBar.hidden = TRUE;
CGRect r = self.view.frame;
r.Origin.y = -44;
r.size.height += 44;
self.view.frame = r;
[searchBar setShowsCancelButton:YES animated:YES];
}
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:NO animated:YES];
}
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
self.navigationController.navigationBar.hidden = true
var r = self.view.frame
r.Origin.y = -44
r.size.height += 44
self.view.frame = r
searchBar.setShowsCancelButton(true, animated: true)
}
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
searchBar.setShowsCancelButton(false, animated: true)
}
このコードを使用して、SearchBar
のキャンセルボタンを表示/非表示にします
ユーザーがSearchBarで編集を開始するとSHowキャンセルボタン。
以下のメソッドは、SearchBar
のデリゲートを適切に設定した場合にのみアクセスできます。
-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
//This'll Show The cancelButton with Animation
[searchBar setShowsCancelButton:YES animated:YES];
//remaining Code'll go here
}
ユーザーとしてCancelButton
を非表示にする[キャンセル]ボタンをクリックします
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
{
//This'll Hide The cancelButton with Animation
[searchBar setShowsCancelButton:NO animated:YES];
//remaining Code'll go here
}
このコードを使用する
searchBar.showsCancelButton=YES;
このコードを使用して、cancel
ボタンを表示します。 searchBar
にテキストを入力するとボタンが表示されます。
-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
}
Swift 4:
2行以下のコードで、キャンセルボタンを表示できました。
_searchBar.setShowsCancelButton(true, animated: true)
searchBar.showsCancelButton = true
_
searchBarTextDidBeginEditing()
メソッド内を呼び出すと、検索バーをクリックした後にキャンセルボタンが表示されます。
UISearchDisplayControllerを使用する必要があります。これにより、ナビゲーションバーが自動的に非表示になります。これがコードです、
-(void) createSearchBar
{
_searchBar = [[SearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
_searchBar.delegate = self;
[self.view addSubview:_searchBar];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
searchDisplayController.searchResultsTableView.sectionHeaderHeight = 10;
searchDisplayController.searchResultsTableView.sectionFooterHeight = 0;
[searchDisplayController.searchResultsTableView setSeparatorColor:[Color whiteColor]];
}
プロトコルUISearchBarDelegate、UISearchDisplayDelegate、UITableViewDelegate、UITableViewDataSourceを.hファイルに実装する必要があります。
また、_searchBarとsearchDisplayControllerは、.hファイルで定義されている変数です。