Отключение клавиатуры UIScrollView при перетаскивании не вызывает resignFirstResponder в UIView с настраиваемой клавиатурой inputView в iOS 11

У меня есть UIView, который рисует подпись. Подпись вводится через настраиваемый inputView в представлении подписи. При рисовании представления подписи я использую тот факт, что это первый респондент, который выделяет представление как редактируемое, и я также переопределяю метод resignFirstResponder, чтобы определить, когда прекратить отображение его как редактируемого.

Итак, код выглядит примерно так:

@implementation SignatureView 

-(BOOL) becomeFirstResponder {
    BOOL result = [super becomeFirstResponder];
    [self showEditingMode];
    return result;
}

-(BOOL) resignFirstResponder {
    BOOL result = [super resignFirstResponder];
    [self showViewingMode];
    return result;
}

-(UIView *) inputView {
    if (!keyboard)
      keyboard = [[SignatureKeyboardView alloc] initWithStuff:stuff....];
    return keyboard;
}

@end

У меня проблема в том, что в iOS 11 метод resignFirstResponder больше не вызывается. В предыдущих версиях iOS он вызывался, и я мог затем изменить пользовательский интерфейс, чтобы показать, что он больше не редактируется.

Это ПРОИСХОДИТ ТОЛЬКО, когда UIScrollView настроен на отключение клавиатуры при перетаскивании, а пользователь перетаскивает UIScrollView. Если вместо этого пользователь нажимает другой UIView, который может стать первым респондентом, например UITextField, затем вызывается resignFirstResponder.

Мне не хватает чего-то, что изменилось в iOS11, или я обнаружил ошибку?

@molf, где вы можете решить эту проблему

salabaha 04.03.2021 19:11

Привет, @salabaha - нет, я так и не смог это решить. В итоге я решил обойти это, слушая UIKeyboardWillShowNotification и UIKeyboardWillHideNotification, а затем делая то, что мне нужно. Не идеально, но работает.

Mof 06.03.2021 01:42

Спасибо за ответ. Я сделал то же самое обходное решение, подписавшись на уведомления клавиатуры, и это сработало.

salabaha 08.03.2021 11:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
3
100
0

Другие вопросы по теме