Category: компьютеры

Category was added automatically. Read all entries about "компьютеры".

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