Обновление до пользовательской клавиатуры IOS 6 больше не отвечает на UIControlEventEditingChanged
Мне интересно, есть ли кто-нибудь еще, кто сталкивался с этой проблемой, или кто мог бы помочь?
По сути, я использую пользовательскую клавиатуру на экране в моем приложении.
На экране есть текстовые поля х4. При загрузке первым респондентом является первое текстовое поле. Это все еще прекрасно работает в ios6. Проблема возникает, когда данные добавляются в первое текстовое поле - оно должно запускать UIControlEventEditingChanged (как в ios5), но это не так. В ios5 это запускает проверки введенных данных и, когда необходимо, переключает первого респондента на следующее текстовое поле. Код для этого:
[self.field addTarget:self
action:@selector(textFieldDidUpdate:)
forControlEvents:UIControlEventEditingChanged];
Чтобы изолировать проблему, я протестировал код выше в текстовом поле, используя стандартную клавиатуру, и он работает в ios6, что заставляет меня думать, что это должно быть что-то в пользовательской клавиатуре, которая представляет проблему ios6 - возможно, то, что я должен был делать в ios5, но для меня автоматически
Стоит отметить, что я все еще могу затронуть все четыре поля - так что это проблема, отличная от той, о которой другие люди задавали вопросы.
Я использую этот код, чтобы скрыть клавиатуру:
id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];
[keyboardImpl setAlpha:0.0f];
Каждое поле перезагружает клавиатуру.
У меня также есть предупреждения, которые я не знаю, как исправить:
id keyboardImpl = [objc_getClass ("UIKeyboardImpl") sharedInstance];
Неявное объявление библиотечной функции 'objc_getClass' с типом 'id (const char *)'
а также
Метод экземпляра '-sharedInstance' не найден (тип возвращаемого значения по умолчанию равен 'id')
Немного отдельная заметка, я слышал, что иногда клавиатуры этого типа отклоняются яблоком, также интересно узнать, есть ли у кого-нибудь подобный опыт?
Спасибо:)
2 ответа
Итак, я только что получил это работает, вот пример из метода myCustomKeyboard. Я надеюсь, что этот ответ имеет отношение к вам
- (IBAction)button0Pressed {
self.textField.text = [self.textField.text stringByAppendingString:@"0"];
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
[self playSound];
}
главное дополнение
[self.textField sendActionsForControlEvents:UIControlEventEditingChanged];
тогда в моем другом классе у меня есть это
[[doubleCheckAlertView textFieldAtIndex:0] addTarget:self action:@selector(testMethod) forControlEvents:UIControlEventEditingChanged];
а также
-(void) testMethod {
//Do something
}
После окончательного решения этих проблем с пользовательской клавиатурой для iOS6, iOS7 теперь показывает фон позади всех пользовательских клавиатур, которые я создал. Фон в форме стандартной клавиатуры. Кто-нибудь еще сталкивался с этой проблемой с кастомными клавиатурами в iOS7? Или знаете, как решить эту проблему?