Solução
Aqui está uma solução completa / solução alternativa para esse problema, vote na resposta de Blld também, porque essa era a parte vital de informação necessária!
Títulos alternativos para ajudar na pesquisa
- Mostrando o teclado Emoji como padrão para um objeto UIKeyInput (no iOS 13)
- Forçar o iOS 13 a mostrar o teclado Emoji
- Configurando o
UITextInputMode.primaryLanguage
emoji - Defina programaticamente o teclado como emoji
Antes do ios13, retornar o UITextInputMode
com primaryLanguage
"igual emoji" seria o padrão para mostrar o teclado emoji (veja a imagem abaixo).
Exemplo de código para retornar o "emoji" UITextInputMode
.
//
// ViewController.swift
// Keyboard Info
//
// Created by Richard Stelling on 30/09/2019.
// Copyright © 2019 Richard Stelling. All rights reserved.
//
import UIKit
class TestButton: UIButton, UIKeyInput {
var hasText: Bool = true
func insertText(_ text: String) { print("\(text)") }
func deleteBackward() {}
override var canBecomeFirstResponder: Bool { return true }
override var canResignFirstResponder: Bool { return true }
override var textInputMode: UITextInputMode? {
for mode in UITextInputMode.activeInputModes {
if mode.primaryLanguage == "emoji" {
return mode
}
}
return nil
}
}
A execução desse código no iOS 12 definirá o teclado para o teclado Emoji do sistema, mas no iOS 13 isso não afetará.
Isto é um erro conhecido? Existe uma solução alternativa?
Atualizações
- Solicitada pelo @Navillus , a lista completa de "modos de entrada ativos" é; "en-GB", "emoji"
- Testado e confirmado em; 13.0, 13.1, 13.1.1, 13.1.2 e 13.2 (semente 1)