Приложение для iPhone / iPad, использующее сочетания клавиш? - PullRequest
8 голосов
/ 28 июля 2010

Имея в наличии клавиатуры для iPad и iPhone, теперь имеет смысл добавлять сочетания клавиш в приложения.

Возможно ли сделать это в приложении? Какие соответствующие API-интерфейсы?

Ответы [ 3 ]

2 голосов
/ 08 ноября 2013

Хотя этот вопрос довольно старый, Apple добавила поддержку определенных сочетаний клавиш в iOS 7. Проверьте класс UIKeyCommand в UIKit Framework для специальной поддержки аппаратных сочетаний клавиш.Шаги высокого уровня для нас:

  1. Используйте статический метод keyCommandWithInput:modifierFlags:action: в классе UIKeyCommand, чтобы создать экземпляр UIKeyCommand для указанных ключей с модификаторами.Обратите внимание, что любые сочетания клавиш, обрабатываемые системой (например, Command-C для копирования), не будут работать.Вы также передадите селектор действий, который будет вызываться при использовании сочетания клавиш
  2. Свяжите этот вновь созданный UIKeyCommand с объектами вашего респондента, возвращая их из свойства keyCommand объекта респондента.
  3. При нажатии клавиш будет вызван ваш селектор.
1 голос
/ 03 сентября 2010

Насколько я могу судить, не существует специального API для событий клавиатуры или определенных событий нажатия клавиш, которые вы могли бы получить на рабочем столе.Но я верю, что в iOS 3.2 у вас гораздо больше доступа к клавиатуре, и вы можете получить доступ к этим сенсорным событиям.Я не уверен, как внешняя клавиатура будет влиять на это, хотя.Кажется, что это то, о чем Apple на самом деле не думала или решила, что это не важно.

0 голосов
/ 07 сентября 2010

Я не уверен, что это сработает, но если представление верхнего уровня вашего приложения создает скрытое текстовое представление, а затем вызывает "[textView becomeFirstResponder];", а затем отвечает на UITextViewTextDidChangeNotification s, вы можете подобрать введенные управляющие клавишив текстовом поле.Недостатком является то, что вам придется подавлять появление клавиатуры, если не подключена внешняя клавиатура, и вы не хотите предлагать прямой ввод текста.

...