UITextfield& #39; кнопка очистки скрывает клавиатуру, когда она находится внутри UIScrollView

У меня есть текстовое поле внутри UIScrollView, и я хочу показать кнопку очистки, когда пользователь начинает редактирование. Также мне нужно скрыть клавиатуру, когда пользователь касается фона UIScrollview (, но не текстового поля ). Отображение этой кнопки очистки не является проблемой, проблема в том, что при нажатии кнопки очистки клавиатура скрывается, а текстовое поле не очищается. Очевидно проблема с распознавателем жестов,потому что метод, работающий с этим, запускается при нажатии кнопки очистки (, но не запускается при нажатии текстового поля ). Вот мой код:

    //adding gesture recognizer so i can hide keyboard when user taps scrollview
    - (void) textFieldDidBeginEditing:(UITextField *)textField
    {
        if (self.tapOutside == nil) self.tapOutside = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textFieldTouchOutSide:)];

        [self.scrollView addGestureRecognizer:self.tapOutside];
    }

    //This hides keyboard BUT IS ALSO CALLED WHEN CLEAR BUTTON IS TAPPED
    - (void)textFieldTouchOutSide:(id)sender
    {
        [self.textfield resignFirstResponder];
    }

    //NEVER GETS CALLED
    - (BOOL) textFieldShouldClear:(UITextField *)textField {
        return YES;
    }

Есть идеи, как это решить? Может быть, лучше добавить распознаватель жестов? Не могу придумать элегантного решения... Заранее спасибо...

5
задан animal_chin 12 April 2012 в 15:04
поделиться