0

こんにちは、ビューにこの検索バーがあり、その下に多くのボタンがあります。そのため、検索バーをタップするとキーボードがポップアップしますが、ユーザーが検索バーの下とキーボードの上の任意の場所をクリックして検索モードを終了できるようにしたいと考えています。私はSOを少し掃除しており、検索バーからファーストレスポンダーステータスを辞任するために使用できるタッチイベントをインターセプトする非表示のボタンを作成することを提案するソリューションに出くわしました。また、必要のないときにボタンを非表示/無効にして、その下のボタンを正しくタップできるようにすることもできますか? 違う。また、トリックを行っていませんsetHiddensetEnabled:関連するコードは次のとおりです。

//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    [outsideSearchBarButton setEnabled:NO];
    [outsideSearchBarButton setHidden:YES];
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    [outsideSearchBarButton setHidden:NO];
    [outsideSearchBarButton setEnabled:YES];
}

nibファイルを介してボタンを無効または非表示に設定しても、まったく役に立ちません。ボタンが存在しない (検索バーとキーボードの間をクリックできず、キーボードが消える) か、常に存在する (この非表示のボタンの下にあるボタンをクリックできない)。どんな助けでも感謝します。前もって感謝します!

4

2 に答える 2

2
//touch event on button outsideSearchBarButton which is invisible
- (IBAction)selectOutsideSearchBar:(id)sender {
    NSLog(@"Selected outside search bar");
    [searchBar resignFirstResponder];
    outsideSearchBarButton.userInteractionEnabled = NO;
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)aSearchBar {
    NSLog(@"searchbarTextDidBeginEditing");
    outsideSearchBarButton.userInteractionEnabled = YES;
}

これを行う。

于 2011-05-18T05:28:09.920 に答える
1

インターフェイスビルダーに移動し、検索中にキーボードを削除するボタンを選択し、上記のメニューからレイアウトを選択して[最背面へ移動]を選択します。次に、インスペクターウィンドウでボタンのスタイルをカスタムに設定します。

これがお役に立てば幸いです。

于 2011-05-18T05:26:34.223 に答える