手柄点击背景iphone点击

时间:2013-02-22 18:19:23

标签: iphone background handle tap uitapgesturerecognizer

我有一个包含不同文本字段的视图。

点击每个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];
        }
    }

}

1 个答案:

答案 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方法有关。