В приложении для iOS как определить, что пользователь нажал одну из клавиш со стрелками на своей внешней клавиатуре? - PullRequest
6 голосов
/ 16 октября 2010

У меня есть пара приложений для iOS, которые представляют по своей природе линейно организованную информацию, позволяя пользователю перемещаться вперед и назад по данным с помощью экранных элементов управления. Я хотел бы позволить пользователям с док-станцией клавиатуры или сопряженной клавиатурой Bluetooth использовать клавиши со стрелками для перемещения вперед и назад. Поскольку приложения работают в полноэкранном режиме, для пользователя очень важно, чтобы не было риска отображения экранной клавиатуры в качестве побочного эффекта.

Я не могу найти API, который позволил бы мне сделать это в документации Apple; но я не уверен, что использовал правильные условия поиска.

Какие существуют API, которые позволят мне добиться этого?

Обновление: Я поднял это как улучшение на сайте Apple об отчете об ошибках .

Ответы [ 4 ]

3 голосов
/ 19 августа 2012

Ответ в Как мне реагировать на внешние клавиши со стрелками на клавиатуре? - создать скрытое текстовое поле и реагировать на изменения выбора - сработало для меня.

3 голосов
/ 19 июля 2012

Вы можете легко определить, какие клавиши со стрелками нажимаются, обращаясь к UIKeyInput и UIKeyInputDelegate.В частности, вы ищете метод positionFromPosition:inDirection:offset:.

После вызова этого метода (он используется iOS для определения диапазона выбора) он будет вызывать setSelectedText:.Поместите NSLog операторов в positionFromPosition:inDirection:offset:, чтобы определить, как это работает (вы несете ответственность за сантехнику)

Также посмотрите на SimpleTextInput .Это предоставит вам шаблон для подклассов UITextInput.

0 голосов
/ 31 марта 2011

Вы можете полностью исключить клавиатуру, просто добавив поддержку пролистывания влево / вправо или жеста перетаскивания, чтобы пользователь мог по существу относиться к приложению как к фотогалерее. Никаких экранных элементов управления не требуется - это встроенная в устройство парадигма навигации, которую легко объяснить на заставке запуска приложения.

Если для 100% * требуется внешняя клавиатура , чтобы поддерживать другие функции сбора данных приложения, пользователи столкнутся с проблемой "рука гориллы" ...

0 голосов
/ 16 октября 2010

На самом деле, не зная, я подозреваю, что ответ "ты не можешь, не по-официальному".

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

Но, как я уже сказал, это всего лишь предположение.

...