Я хочу, чтобы пользовательская клавиатура выполнялась как клавиатура программного обеспечения iOS в отношении доступности. Когда кнопочное нажатие добавляет письмо в UITextField, письмо должно быть произнесено VoiceOver в «добавленном тоне персонажа». Когда нажатие кнопки удаляет букву из UITextField, букву следует произносить VoiceOver в «удаленном тональном сигнале».Доступная пользовательская клавиатура в iOS
Вот что я пытался:
- Создано UITextField в контроллере представления, в раскадровке.
- Создал два UIButtons с надписью «Тип» и «Backspace» в контроллере представления в раскадровке.
- Задайте свойства доступности как для UIButtons для Keyboard Key.
- Поднял раскадровку UITextField до экземпляра UITextField IBOutlet, textField.
- Поднял раскадровку «Тип» UIButton до IBAction, тип.
- Поднял раскадровку «Backspace» UIButton до IBAction, -backspace.
- Тип реализации:
[[self textField] insertText:@"a"];
. - Внедрено -backspace как:
[[self textField] deleteBackward];
. - Сделано textField первого ответчика.
Я также пробовал то же самое, перемещая кнопки в UIView, который был установлен как входной элемент textField.
Символы правильно добавлены и удалены из текстового поля, но VoiceOver не говорят. Как я могу сделать эту работу?
EDIT:
Аппаратная клавиатура говорит правильно. Только пользовательская клавиатура программного обеспечения не говорит так, как должна.
Когда вы делаете все это, ваш делегат получает обратные вызовы в textField: shouldChangeCharactersInRange: replacementString: 'когда эти клавиши нажаты? –
Нет, это не так. Однако, прося делегата, если текст должен измениться перед вызовом -insertText: похоже, не имеет значения. – Endersstocker