Горячие клавиши в iOS?

Действительно ли возможно получить последовательности командной клавиши в стороннем iPad/приложениях для iPhone?

Долгая версия:

На моей превосходной поездке исследования в отношении моего нового iPad с он мерцает клавиатура с док-станцией, я обнаружил, очень к моей радости, которая при редактировании текста в стандартном тексте проблемы просматривает; команды в пределах от ⌘C / ⌘ P для вставки копии и ^A, ^B, ^E и друзей для строки и символа, переходящего работы.

Пока неплохо, да? Проблема, это захватывающее поведение кажется ограниченным текстовыми полями, и более конкретно, стандарт выпускает текстовые поля. То, что я действительно хотел бы, должно получить события как они для моего собственного использования.

Проблема, которую я часто нахожу с большим количеством приложений, - то, что они имеют тенденцию или быть близко к бесполезному, или по крайней мере громоздкие, без клавиатуры с док-станцией (например, iWork Suite), или близко к бесполезному, или по крайней мере громоздкий, с клавиатурой с док-станцией (большинство других приложений, которые не полагаются в большой степени на ввод текста, а скорее касаются жестов [то есть большая часть другого периода приложений]).

Много игр, например, Обороты Цивилизации, и подобный, извлекли бы выгоду в широком масштабе из просто простого добавления способности использовать клавиши со стрелками для перемещения единиц и клавиши Enter для окончания поворота.

Так вопрос, затем, как указано выше: существует ли способ получить и ответить на эти события для предложения альтернативы для касания команд для тех, которые требуют этого и имеют аппаратные средства?

Отказ от ответственности: У меня нет намерения разработать приложения, которые полагаются исключительно на ввод с клавиатуры, конечно, и, ни если кто-либо еще. Сенсорный интерфейс является главным. Это просто не всегда абсолютно практично.

9
задан Williham Totland 3 August 2010 в 03:12
поделиться

1 ответ

Единственный способ (который я знаю) получить ввод с клавиатуры в iOS - это использовать протокол UITextInput . К сожалению, протокол не дает вам необработанных нажатых клавиш, а вместо этого отправляет вам сообщения типа «вставить эту строку» и «переместить курсор в эту позицию». Итак, чтобы узнать, что была нажата клавиша со стрелкой, вам потребуется немного покопаться.

Что касается сочетаний клавиш с модификаторами, таких как копировать / вставить или отменить / повторить, Apple, похоже, поддерживает только основы и не позволяет создавать собственные. Они используют методы из UIResponder : –canPerformAction: withSender : и undoManager .

Итак, если бы я писал игру и хотел воспользоваться преимуществами клавиатуры, я бы создал подкласс UIResponder и сделал бы его совместимым с протоколом UITextInput. А затем сделайте его первым, кто откликнется. Однако это, вероятно, вызовет программную клавиатуру, если физическая отсутствует.

Мой собственный отказ от ответственности: Я не проделал всей тяжелой работы по использованию UITextInput таким образом, чтобы он не предназначался для использования, поэтому я не знаю, насколько это возможно. быть, чтобы заставить его работать. И я действительно не хочу. Скорее, давайте все отчеты об ошибках отправлять, чтобы Apple создала API, который позволяет нам получать более точный ввод с клавиатуры.

6
ответ дан 3 November 2019 в 01:52
поделиться