Iphone 在键盘动画之前运行代码

Iphone 在键盘动画之前运行代码,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我在我的应用程序中有一个搜索栏,我希望当焦点放在搜索框中时,在键盘显示之前出现一些动画。在显示键盘之前,我是否可以使用委托方法进行拦截 我当前正在运行以下代码,以检测UISearchBar何时被激活: -(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{ NSLog(@"Begin Editing"); CGRect newFrame = searchBar.frame; newFrame.origin

我在我的应用程序中有一个搜索栏,我希望当焦点放在搜索框中时,在键盘显示之前出现一些动画。在显示键盘之前,我是否可以使用委托方法进行拦截

我当前正在运行以下代码,以检测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!");
                      }
     ];
}

我可以延迟显示键盘吗?可能会调用暂停,然后在完成处理程序中显示它?

您需要在代码中添加通知中心

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
然后声明一个名为keyboardDidShow:的方法,并向其添加动画代码

有很多选择。我想

name:UIKeyboardWillShowNotification
也有。只要检查它是否在那里,它应该工作


干杯快乐编码

您需要在代码中添加通知中心

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
然后声明一个名为keyboardDidShow:的方法,并向其添加动画代码

有很多选择。我想

name:UIKeyboardWillShowNotification
也有。只要检查它是否在那里,它应该工作


干杯快乐编码

是的,还有
搜索栏应该开始编辑:
。您可以制作动画,然后返回
YES

是的,还有
搜索栏应该开始编辑:
。您可以制作动画,然后返回
YES