1

3つのボタンと他のサブビューを持つようにビューが設定されているView Controllerがあります。ボタンの1つ(3番目のボタン)をクリックすると、別のビューコントローラーのビューをサブビューとして追加していますself.view (このビューでは、キーボードでアクティブな状態の検索ディスプレイコントローラーがあります)

次のコードを使用してこれを達成できます

 [self.searchDisplayController setActive:YES];
    [self.searchDisplayController.searchBar setShowsCancelButton:NO];
    [self.searchDisplayController.searchBar becomeFirstResponder];

2番目のボタンを押すと、このビューをスーパービューから削除し、次の方法でviewWillDisappear[self.view endEditing:YES])でキーボードを辞任しようとしますが、キーボードはまだ辞任しません

1 つの小さな編集。次のコードをコメント アウトした場合に備えて辞任します。

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {

    if (self.dataSource.count)
        return YES;
    return NO;
}
4

3 に答える 3

0

でUISearchBarを辞任してみてくださいviewWillDisappear

[yourSearchBar resignFirstResponder];
于 2013-07-30T06:51:11.707 に答える
0

2番目のボタンに呼び出されるメソッド内で、入力するだけです

 [self.searchDisplayController.searchBar resignFirstResponder];

viewWillDisappear はそのままにしておきます。これは、ビューが実行中のアニメーションで終了したとき、およびビューが終了したときのためのものです。レスポンダーを辞任するようにディスプレイコントローラーを設定すると、すぐに消えます。

お役に立てれば!

于 2013-07-30T06:51:30.747 に答える