У меня в игре 3 предмета ...
1) UIView находится в основании иерархии и содержит UIScrollview.
2) UIScrollview, представляющий длинную форму пользователя.
3) Невидимая кнопка в UIScrollview, которую я использую, чтобы предоставить функции «скрыть клавиатуру».
Обратите внимание, что в приведенном ниже коде я регистрируюсь, чтобы получать уведомления, когда клавиатура должна появиться, и снова, когда она исчезнет. Они работают отлично.
Моя проблема, похоже, одна из "слоев". Смотрите ниже, где я вставляю кнопку в представление с индексом: 0. Это приводит к тому, что кнопка активируется и «наполняется» за просмотром прокрутки, поэтому при нажатии на нее просмотр прокрутки захватывает касание, а кнопка не распознается. Нет возможности «дотянуться» до кнопки и подавить клавиатуру.
Однако, если я вставлю atIndex: 1, кнопка будет наложена на верхнюю часть полей ввода текста, и таким образом на любое прикосновение воздействует кнопка, которая немедленно подавляет клавиатуру и затем исчезает.
Как мне вставить кнопку сверху UIScrollview, но за UITextfields, которые там находятся?
другая логистика: у меня есть - (пустая) функция скрытой клавиатуры, которую я настроил с UIButtion как IBAction (). И у меня UIButton подключен к «владельцу файлов» через Ctrl-перетаскивание / падение. (Нужны ли мне оба этих соглашения?)
Этот код в ViewDidLoad () ...
[[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillShowNotification object:nil queue:nil usingBlock:^(NSNotification *notification){
[self.view insertSubview:self.keyboardDismissalButton atIndex:0];
}];