UIScrollView: клавиша отклонения при перетаскивании не вызывает resignFirstResponder в UIView с настраиваемой клавиатурой inputView в iOS 11 - PullRequest
0 голосов
/ 21 мая 2018

У меня есть UIView, который рисует подпись.Сигнатура вводится с помощью пользовательского ввода в представлении подписи.При рисовании представления подписи я использую тот факт, что это первый респондент, который выделяет представление как редактируемое, и я также переопределяю метод 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, или я обнаружил ошибку?

...