私のアプリケーションには検索バーがありますが、シミュレータで実行すると検索フィールドに入力することができません。UISearchBarの実装
私のコードでは、検索バーはxibファイルで作成され、マップビューのサブビューとして(プログラムで)追加され、マップの上に配置されます。私の検索バーのための私のコードの一部:
[mapView addSubview: searchBar];
searchBar.placeholder = @"Search or Place Pin";
searchBar.searchBarStyle = UISearchBarStyleProminent;
searchBar.backgroundImage =[[UIImage alloc]init];
searchBar.barTintColor = [UIColor clearColor];
searchBar.delegate = self;
-(void) viewDidAppear:(BOOL)animated{
...
[searchBar becomeFirstResponder];
BOOL searchBarIsResponding = [searchBar becomeFirstResponder];
NSLog(@"first responder: %d", searchBarIsResponding);
....
- (void) searchBarButtonClicked:(UISearchBar *)searchBar
{
[self searchCoordinatesForAddress:[searchBar text]];
[searchBar resignFirstResponder];
}
編集: は、私はそれが検索バーにそのタッチを渡していないのMapViewの問題だったかどうかを確認するためにNOへのMapViewのuserInteractionEnabledを設定しようとしたが、私はまだで入力することができませんでしたsearchBar、私はそれが問題だとは思わない。
デリゲート=自己を使用している場合は不要な検索バーにタップジェスチャーを追加しようとしています。 UISearchBarDelegateをインクルードし、関連するメソッドをオーバーライドします。 しかし、ジェスチャをタップしたい場合でも、パラメータなしでセレクタを割り当てていて、セレクタを割り当てていないのに間違ったセレクタを使用していますが、 - (void)searchBarButtonClicked:(UISearchBar *)searchBar – SHN
元はタップジェスチャがありませんでした。それでも私は検索バーに入力することができませんでした。タップジェスチャーを削除して元のコードに戻すと、何を変更する必要がありますか?関連するメソッドをオーバーライドするとどういう意味ですか? – Matt