UISearchBar
と組み合わせてUISearchDisplayController
のテーブルビューを使用します。検索バーは、不適切なときにキャンセルボタンを自動的に非表示にしますが、モーダル状態のビューコントローラを使用しています。キャンセルボタンを表示し、検索がキャンセルされたときにモーダルビューコントローラをポップします。UISearchBarにキャンセルボタンを常に表示
カスタム検索バーを作成せずにキャンセルボタンを表示したままにする方法はありますか?
UISearchBar
と組み合わせてUISearchDisplayController
のテーブルビューを使用します。検索バーは、不適切なときにキャンセルボタンを自動的に非表示にしますが、モーダル状態のビューコントローラを使用しています。キャンセルボタンを表示し、検索がキャンセルされたときにモーダルビューコントローラをポップします。UISearchBarにキャンセルボタンを常に表示
カスタム検索バーを作成せずにキャンセルボタンを表示したままにする方法はありますか?
を使用する必要があります。
現在、私の作品です。コードを追加した後、UISearchBar
の代わりにクラスを使用するようにInterface Builderでクラスを変更しました。私はまた、 "ショーキャンセルボタン"を有効にしました。
コード:
//NoAnimatingSearchBar.h
@interface NoAnimatingSearchBar : UISearchBar
@end
//NoAnimatingSearchBar.m
#import "NoAnimatingSearchBar.h"
@implementation NoAnimatingSearchBar
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
- (void) _destroyCancelButton {
NSLog(@"_destroyCancelButton");
}
-(void)_setShowsCancelButton:(BOOL)showsCancelButton {
NSLog(@"_setShowsCancelButton:(BOOL)showsCancelButton");
}
@end
を働く表示デリゲートに
- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
controller.searchBar.showsCancelButton = YES;
}
このスレッドは古いですが、このソリューションはプライベートAPIを使用しているようで、アプリのレビュー中にアプリが拒否される可能性があります。 –
あなたはインスタンスメソッドsetShowsCancelButton呼び出すことによって設定された場合どうなりますか:アニメーション: – Saran
が動作しないデリゲートメソッドで表示するボタンを設定していない、どちらもはありません 'UISearchBar'をサブクラス化し、すべてのオーバーライド'showsCancelButton'メソッドです。 –