0

アプリに検索バーがあり、検索ボックスにフォーカスが置かれたときにキーボードが表示される直前にアニメーションを発生させたいと考えています。キーボードが表示される前にインターセプトするために利用できるデリゲート メソッドはありますか?

現在、UISearchBar がアクティブになったことを検出するために、次のコードを実行しています。

-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
    NSLog(@"Begin Editing");
    CGRect newFrame = searchBar.frame;
    newFrame.origin.y = 0;
    [UIView animateWithDuration:0.25
                      animations:^{
                          searchBar.frame = newFrame;
                          [searchBar layoutSubviews];
                      }
                      completion:^(BOOL finished){
                          NSLog(@"Done!");
                      }
     ];
}

とにかくキーボードの表示を遅らせることはできますか? おそらく停止を呼び出してから、完了ハンドラーに表示しますか?

4

2 に答える 2

2

コードに通知センターを追加する必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

次に、keyboardDidShow: という名前のメソッドを宣言し、アニメーション コードを追加します。

利用可能な多くのオプションがあります。私は推測する

name:UIKeyboardWillShowNotification

も利用できます。そこにあるかどうかを確認してください。動作するはずです。

乾杯ハッピーコーディング.!!

于 2013-01-29T13:22:49.097 に答える
1

はい、ありsearchBarShouldBeginEditing:ます。アニメーションを実行してから戻ることができますYES

于 2013-01-29T13:23:03.697 に答える