Wednesday, 2 October 2019

Showing the system Emoji keyboard by default

Alternative titles to aid search

  • Showing the Emoji keyboard as default for a UIKeyInput object (in iOS 13)
  • Force iOS 13 to show the Emoji keyboard
  • Setting the UITextInputMode.primaryLanguage to emoji
  • Programatically set the keyboard to emoji

Prior to returning the UITextInputMode with primaryLanguage that equaled "emoji" would default to showing the Emoji Keyboard (see image below).

Emoji keyboard screen shot

Example code for returning the "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
    }
}

Running this code on iOS 12 will set the keyboard to the system Emoji Keyboard, but on iOS 13 it has no affect.

Is this a known bug? Is there a workaround?



from Showing the system Emoji keyboard by default

No comments:

Post a Comment