Обнаружение Bluetooth-клавиатуры в приложении iPad - PullRequest
4 голосов
/ 16 февраля 2012

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

Для этого я попробовал несколько способов, таких как включение показа внутренней клавиатуры/ скрыть уведомления, но эти уведомления вызываются только тогда, когда внешняя клавиатура не подключена, и это мне не помогает.Также пробовал с Framework ExternalAccessory, но он не будет обнаруживать подключенную по Bluetooth клавиатуру. Также пытался с EADemo обнаружить внешнюю клавиатуру и не обнаруживает внешнюю клавиатуру, но он обнаруживает подключенную через док-станцию ​​кредитную карту.

Если кто-то здесь ушелчерез эту функцию или знает что-нибудь, связанное с этим, пожалуйста, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 07 апреля 2013

Вы не должны перемещать представление вверх, когда поле получает фокус - вы должны только перемещать представление вверх как ответ на UIKeyboardDidShowNotification.Система позаботится обо всем остальном.

1 голос
/ 02 марта 2012

@ SpySudhir -

Логика A:

  • содержит переменную bool в каком-либо файле, которая возвращает значение да / нет, когда клавиатура внешняя или внутренняя.

  • На основе возвращенного значения bool вызвать функцию анимации.

Логика B:

  • Прослушивание уведомлений клавиатуры с помощью NSNotificationCenter.

  • Уведомления, такие как воля, показ, скрытие уведомлений, помещают NSLog поверх их и видят, какой из них вызывается.

  • Если подключена внешняя плата, метод willShow не вызывается.так что в этом случае мы можем немного обойтись и установить значение bool равным no, или мы можем иметь счетчик и проверять его каждый раз, если его значение увеличивается на единицу или оно примерно такое же.

...