microcell (microcell) wrote,
microcell
microcell

Category:

iOS: Как убрать клавиатуру при утрате фокуса.

Клавиатура в iOS существует, как отдельный UIView, который появляется над вашим окном, закрывая его часть. Всё бы ничего, но если вам нужно как-то добраться до тех элементов, которые оказались скрыты этим элементом, начинаются шаманские танцы с бубном.

Фактически, есть два способа решить эту проблему: использовать UIScrollView или перехватывать нажатие на экран и самостоятельно обрабатывать их, убирая клавиатуру, как только пользователь пытается выйти за пределы UITextField. Первый способ слишком тривиальный, что бы здесь его расписывать, к тому же, наличие прокрутки не всегда может быть удобно.

Второй способ выглядит примерно так:

IBOutlet UITextView * MyTextView;

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    if ([MyTextView isFirstResponder] && [touch view] != MyTextView)
        [MyTextView resignFirstResponder];
    [super touchesBegan:touches withEvent:event];
}


Если у вас существуют несколько UITextField, их всех придётся расписывать в этой функции.

Решение было найдено на stackoverflow.com

Tags: ios, objective-c, пособие по вкручиванию лампочек
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments