У меня есть 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, или я обнаружил ошибку?