我有一个包含不同文本字段的视图。
点击每个taxtfield会弹出一个键盘,如果我在textField外面点击,键盘就会消失,但视图也会消失!如何更改代码,以便我只能使用取消按钮退出视图,然后点击视图而不是单击文本区域外部或单击背景。
- (void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController setNavigationBarHidden:YES];
self.view.backgroundColor = [self.appDel.styleManager appBackgroundGradientWithFrame:self.view.bounds];
self.tapView.backgroundColor = [UIColor clearColor];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(endPageEdit:)];
tap.delegate = self;
[self.view addGestureRecognizer:tap];
}
- (void)endPageEdit:(UIGestureRecognizer *)sender
{
if (sender.view == self.view) {
[self.view endEditing:YES];
if ([self isFormVisible]) {
[self handleTap:sender];
}
}
}
答案 0 :(得分:0)
在endPageEdit
:方法中,将textFields告诉resignFirstResponder
。
- (void)endPageEdit:(UIGestureRecognizer *)sender {
// assumes you have an outlet set up for each of the textFields
[self.textFieldA resignFirstResponder];
[self.textFieldB resignFirstResponder];
if (sender.view == self.view) {
[self.view endEditing:YES];
if ([self isFormVisible]) {
[self handleTap:sender];
}
}
}
只有零个或一个将成为第一个响应者,但当控制不是第一个响应者时,拒绝第一个响应者没有任何缺点。视图消失的原因必须与endEditing
:方法或您未发布的handleTap
方法有关。