Действительно ли возможно получить последовательности командной клавиши в стороннем iPad/приложениях для iPhone?
Долгая версия:
На моей превосходной поездке исследования в отношении моего нового iPad с он мерцает клавиатура с док-станцией, я обнаружил, очень к моей радости, которая при редактировании текста в стандартном тексте проблемы просматривает; команды в пределах от ⌘C / ⌘ P для вставки копии и ^A, ^B, ^E и друзей для строки и символа, переходящего работы.
Пока неплохо, да? Проблема, это захватывающее поведение кажется ограниченным текстовыми полями, и более конкретно, стандарт выпускает текстовые поля. То, что я действительно хотел бы, должно получить события как они для моего собственного использования.
Проблема, которую я часто нахожу с большим количеством приложений, - то, что они имеют тенденцию или быть близко к бесполезному, или по крайней мере громоздкие, без клавиатуры с док-станцией (например, iWork Suite), или близко к бесполезному, или по крайней мере громоздкий, с клавиатурой с док-станцией (большинство других приложений, которые не полагаются в большой степени на ввод текста, а скорее касаются жестов [то есть большая часть другого периода приложений]).
Много игр, например, Обороты Цивилизации, и подобный, извлекли бы выгоду в широком масштабе из просто простого добавления способности использовать клавиши со стрелками для перемещения единиц и клавиши Enter для окончания поворота.
Так вопрос, затем, как указано выше: существует ли способ получить и ответить на эти события для предложения альтернативы для касания команд для тех, которые требуют этого и имеют аппаратные средства?
Отказ от ответственности: У меня нет намерения разработать приложения, которые полагаются исключительно на ввод с клавиатуры, конечно, и, ни если кто-либо еще. Сенсорный интерфейс является главным. Это просто не всегда абсолютно практично.
Единственный способ (который я знаю) получить ввод с клавиатуры в iOS - это использовать протокол UITextInput
. К сожалению, протокол не дает вам необработанных нажатых клавиш, а вместо этого отправляет вам сообщения типа «вставить эту строку» и «переместить курсор в эту позицию». Итак, чтобы узнать, что была нажата клавиша со стрелкой, вам потребуется немного покопаться.
Что касается сочетаний клавиш с модификаторами, таких как копировать / вставить или отменить / повторить, Apple, похоже, поддерживает только основы и не позволяет создавать собственные. Они используют методы из UIResponder
: –canPerformAction: withSender
: и undoManager
.
Итак, если бы я писал игру и хотел воспользоваться преимуществами клавиатуры, я бы создал подкласс UIResponder
и сделал бы его совместимым с протоколом UITextInput. А затем сделайте его первым, кто откликнется. Однако это, вероятно, вызовет программную клавиатуру, если физическая отсутствует.
Мой собственный отказ от ответственности: Я не проделал всей тяжелой работы по использованию UITextInput
таким образом, чтобы он не предназначался для использования, поэтому я не знаю, насколько это возможно. быть, чтобы заставить его работать. И я действительно не хочу. Скорее, давайте все отчеты об ошибках отправлять, чтобы Apple создала API, который позволяет нам получать более точный ввод с клавиатуры.