как «скрыть клавиатуру при касании изнутри» при использовании невидимой кнопки, которая покрывает весь вид прокрутки - могу ли я иметь оба? - PullRequest
0 голосов
/ 28 февраля 2011

Если невидимая кнопка покрывает весь экран, она получает все прикосновения, и я не могу прокрутить. Если я удаляю кнопку, прокрутка работает как чемпион.

Как мне построить слои, чтобы я мог иметь оба?

Спасибо!

1 Ответ

3 голосов
/ 28 февраля 2011

Используйте уведомления.Зарегистрируйтесь для UIKeyboardWillShowNotification и UIKeyboardWillHideNotification.Затем, когда появится клавиатура, добавьте кнопку в иерархию представлений.Аналогичным образом удалите кнопку из иерархии представлений, когда клавиатура находится на выходе.

Зарегистрируйтесь для получения этих уведомлений в -viewDidLoad и обязательно удалите себя в качестве наблюдателя в -viewDidUnload;

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillShowNotification object:nil queue:nil usingBlock:^(NSNotification *notification) {

        [self.view insertSubview:self.keyboardDismissalButton atIndex:0];

    }];

    [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillHideNotification object:nil queue:nil usingBlock:^(NSNotification *notification) {

        [self.keyboardDismissalButton removeFromSuperview];

    }];
}
...