我的应用程序中有一个搜索栏,我希望在将焦点放在搜索框中时,键盘出现之前会出现一些动画。在显示键盘之前是否有可以用来拦截的委托方法?
我目前正在运行以下代码来检测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!");
}
];
}
我可以延迟键盘的显示吗?也许停止它,然后在完成处理程序中显示它?
答案 0 :(得分:2)
您需要为代码添加通知中心。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
然后声明一个名为keyboardDidShow的方法:并将动画代码添加到它。
有很多选择。我想
name:UIKeyboardWillShowNotification
也可用。只要检查一下它是否应该有效。
干杯快乐的编码。!!
答案 1 :(得分:1)
是的,还有searchBarShouldBeginEditing:
。您可以制作动画,然后返回YES
。