Как определить Smart / внешнюю клавиатуру на iPad? - PullRequest
0 голосов
/ 14 февраля 2019

Как можно получить уведомление при подключении (Smart) клавиатуры?

Некоторый контекст: Я работаю над функцией, которая автоматически показывает и скрывает мою программную клавиатуру в зависимости от того,iPad Pro Smart Keyboard или другая внешняя клавиатура подключена или нет (например, Pages).Я видел этот ответ, но он применяется только при выделении текстового поля.После долгих поисков я наткнулся на класс Apple ExternalAccessory , который вы можете запросить для подключенных устройств, а затем проверить, что это за устройства.

Я попробовал базовую реализацию этого, и я не могу заставить его работать на моем iPad Pro с подключенной Smart Keyboard (Да, я уверен, что он подключен, потому что я вижу буквы, которые я печатаю, появляются на моем?).

Прежде всего, в документах говорится, что вы можете обнаруживать устройства через Bluetooth и Lightning, я могу только надеяться, что это также включает в себя разъем Smart Keyboard.Я включил возможность настройки беспроводных аксессуаров в моем проекте.

Во-вторых, необходимо добавить ключ UISupportedExternalAccessoryProtocols в их список info.plist, а затем указать, какие протоколы подключены.Какие протоколы там, похоже, не документированы, в том числе и для собственных устройств Apple.Я наткнулся на учебник, в котором упоминается iAP2 протокол Bluetooth, поэтому я добавил его, а затем надеялся на лучшее.

Мой код

Так как я этого не сделалПравильно настроив конфигурацию своего проекта, я также не добавил много кода.Я пытался:

func printAllAccessories() {
    for device in EAAccessoryManager.shared().connectedAccessories {
        print("connected device with name: ", device.name)
    }
}

Но, кажется, что он подключен.

Итог

Какой процесс, включая настройку проекта, получитьУведомления о внешней клавиатуре в приложении для iOS?

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

...