在 iwatch 中触摸 UITextField 外部时关闭键盘
Dismiss keyboard when touching outside of UITextField in iwatch
我知道当我想关闭键盘时我需要告诉我的 UITextField 退出第一响应者,但我不确定如何知道用户何时按下了 out side of view
?
希望对您有所帮助..
您只需将 UITapGestureRecognizer 添加到您的 self.view
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(taped:)];
[tap setNumberOfTapsRequired:1];
[self.view addGestureRecognizer:tap];
-(void)taped:(UITapGestureRecognizer*)gesture
{
//resign first responder
}
你可以试试touchesEnded方法
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[yourTextfield resignFirstResponder];
}
您可以通过调用下面提供的触摸视图委托方法来实现此目的。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (![[touch view] isKindOfClass:[UITextField class]]) {
[self.view endEditing:YES];
}
[super touchesBegan:touches withEvent:event];
}
如有任何疑问,请告诉我。
它将隐藏键盘。
我希望它对你有用。
UIGestureRecognizer *tapper;
- (void)viewDidLoad {
[super viewDidLoad];
tapper = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTap:)];
tapper.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapper];
}
- (void)handleSingleTap:(UIGestureRecognizer *)sender
{
[UIView beginAnimations:nil context:NULL];
[UIView commitAnimations];
[self.view endEditing:YES];
}
我知道当我想关闭键盘时我需要告诉我的 UITextField 退出第一响应者,但我不确定如何知道用户何时按下了 out side of view
?
希望对您有所帮助..
您只需将 UITapGestureRecognizer 添加到您的 self.view
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(taped:)];
[tap setNumberOfTapsRequired:1];
[self.view addGestureRecognizer:tap];
-(void)taped:(UITapGestureRecognizer*)gesture
{
//resign first responder
}
你可以试试touchesEnded方法
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[yourTextfield resignFirstResponder];
}
您可以通过调用下面提供的触摸视图委托方法来实现此目的。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (![[touch view] isKindOfClass:[UITextField class]]) {
[self.view endEditing:YES];
}
[super touchesBegan:touches withEvent:event];
}
如有任何疑问,请告诉我。
它将隐藏键盘。 我希望它对你有用。
UIGestureRecognizer *tapper;
- (void)viewDidLoad {
[super viewDidLoad];
tapper = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTap:)];
tapper.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:tapper];
}
- (void)handleSingleTap:(UIGestureRecognizer *)sender
{
[UIView beginAnimations:nil context:NULL];
[UIView commitAnimations];
[self.view endEditing:YES];
}