触摸导航栏时隐藏键盘
我有一个UITabBarController
与四个相关的意见。在其中一个视图中,有一个文本视图只为navigationbar
留下空间:我想要做的是在navigationbar
被触摸时隐藏键盘。我怎样才能做到这一点?我应该重写UINavigationBar
的touchesBegan:
方法吗?触摸导航栏时隐藏键盘
编辑
我发现这样做是增加了UITapGestureRecognizer
UITapGestureRecognizer* tapRecon = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(navigationBarTap:)];
tapRecon.numberOfTapsRequired = 1;
[self.navigationController.navigationBar addGestureRecognizer:tapRecon];
它调用方法
- (void)navigationBarTap:(UIGestureRecognizer*)recognizer {
[self.view endEditing:YES];
}
UITapGestureRecognizer* tapRecon = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(navigationBarTap:)];
tapRecon.numberOfTapsRequired = 1;
[self.navigationController.navigationBar addGestureRecognizer:tapRecon];
- (void)navigationBarTap:(UIGestureRecognizer*)recognizer {
[self.view endEditing:YES];
// OR
for (id view in self.view.subviews) {
if ([view isKindOfClass:[UITextView class]] || [view isKindOfClass:[UITextField class]]) {
[view resignFirstResponder];
}
}
}
也许这将帮助ü
正是我在找什么。谢谢,完美的作品。 –
我的荣幸,我可以帮助别人。 – Warewolf
在你可以在你的touchesBegan方法的最佳途径resignFirstResponder t o使键盘消失。希望这会有所帮助,欢呼吉姆。
未经测试。 将触控手势添加到UINavigationbar,并执行姿势以响应应答者的动作。
UITapGestureRecognizer *gestureRecognizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hideKeyboard)];
gestureRecognizer.numberOfTapsRequired=1;
gestureRecognizer.cancelsTouchesInView = NO;
[UInavigationbar addGestureRecognizer:gestureRecognizer];
[gestureRecognizer release];
操作:
[Textfield resignfirstresponder]
//此方法导航到其他视图之前会打电话......
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:YES];
[yourTextField resignFirstResponder];
}
//这将导航到其他屏幕前辞职键盘..
我希望这会帮助你。
你发现你的触摸? – iPatel