Comando de suporte, controle e teclas de seta quando um teclado externo é anexado
Eu tenho um aplicativo iOS onde tudo que eu quero fazer é fornecer mais suporte para combinações básicas de teclas de comando, como comando + a, comando + s, comando + x, comando + v e amigos quando um usuário conectou um teclado bluetooth.
Eu sei que isso é possível. Aplicativos como o Textastic e muitos outros aplicativos de edição suportam esses recursos.
Eu olhei para o UIResponder (que parece ser usado apenas pelo menu pop-up), UIKeyInput, UITextInput [Delegate] e outros documentos API sem referência a como fazer isso.
É fácil suportar quais opções são exibidas no UIMenuController usando (BOOL) ação canPerformAction: (SEL) com o remetente: remetente (id). No entanto, esse método não parece ser chamado quando um teclado Bluetooth está conectado. Então, eu preciso implementar outro método específico para o teclado ou outra coisa.
Eu agora suspeito que pode ser que o subsistema de texto seja responsável por executar as ações. No entanto, não há documentação que eu possa encontrar! Além disso, nenhum dos métodos delegados UITextInput é chamado quando uma operação é executada. Estou quase pensando que a solução é privada e que preciso perguntar especificamente à Apple como obter acesso a esses recursos (o que acabei de fazer).
ATUALIZAR:
positionFromPosition: inDirection: offset: é o método a ser usado para detectar quando a tecla de seta é pressionada. Depois que o iOS chamou esse método, ele chama setSelectedText :. Você precisará trabalhar o resto do encanamento.
ATUALIZAÇÃO 2:
Eu pude responder todas as perguntas que eu tinha. Por favor, consulte a solução marcada para as respostas.