1

別のファイルにデータ ソース/デリゲートを含むテーブル ビューがあります。さらに、最初のファイルに属するテーブル ビューの上に検索バーがあります。スクロール時にキーボードを非表示にするには、次のように呼び出す必要があります。

[self.searchBar resignFirstResponder]

しかし

(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

メソッドはデリゲートにあります。この場合、スクロール時にキーボードを非表示にするにはどうすればよいでしょうか。

ありがとう!

4

2 に答える 2

1

scrollviewwillbegindragging で通知を送信できます。テーブルビュー デリゲート:

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
     [[NSNotificationCenter defaultCenter] postNotificationName:@"resign" object:nil];
}

検索バー デリゲート:

-(void)viewDidLoad{
     [super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(goTo:) name:@"resign" object:nil];
}

-(void)goTo:(NSNotification*)notification {
[self.searchBar resignFirstResponder];

}
于 2012-08-15T00:59:14.023 に答える
0

方法はたくさんありますが、そのうちのいくつかを以下に示します。

オプション 1: テーブル オブジェクトを初期化した後、以下の行を追加します。

[yourTableView setKeyboardDismissMode:UIScrollViewKeyboardDismissModeOnDrag];

また

オプション2:テーブルビューのスーパービューを取得し(aViewcontrollerObj.viewとして期待しています)、その編集を強制的に終了します。

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    UIView *tableviewSuperView = yourTableView.superview;
    [tableviewSuperView endEditing:true];
}

Happyコーディングに役立つことを願っています:)

于 2015-12-08T10:13:20.463 に答える