将iOS键盘布局更改为表情符号? [英] Change the iOS keyboard layout to emoji?

查看:203
本文介绍了将iOS键盘布局更改为表情符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当UITextField成为第一响应者时,是否可以将键盘布局更改为表情符号?或根据用户操作(如点击UIButton

Is it possible to change the keyboard layout to emoji when a UITextField becomes the first responder ? or according to a user action like tapping a UIButton

我知道我可以将键盘布局更改为以下之一:

I know that i can change the keyboard layout to one of these:

typedef enum {
    UIKeyboardTypeDefault,                // Default type for the current input method.
    UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
    UIKeyboardTypeNumbersAndPunctuation,  // Numbers and assorted punctuation.
    UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).
    UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.
    UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).
    UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person's name or phone number.
    UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).

    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated

} UIKeyboardType;

我想知道是否可以对表情符号布局做同样的事情?

I am wondering if there's a way to do the same with the emoji layout?

推荐答案

* iOS13更新*

像这样创建UITextField的子类:

Create a subclass of UITextField like this:

class EmojiTextField: UITextField {

   // required for iOS 13
   override var textInputContextIdentifier: String? { "" } // return non-nil to show the Emoji keyboard ¯\_(ツ)_/¯ 

    override var textInputMode: UITextInputMode? {
        for mode in UITextInputMode.activeInputModes {
            if mode.primaryLanguage == "emoji" {
                return mode
            }
        }
        return nil
    }
}

在IB中,选择该类作为UITextField的自定义类.

当字段成为第一响应者时,这将导致键盘选择表情符号键盘(如果可用).当然,用户可以随时将键盘改回其他任何位置,但是至少可以对您想要的内容进行初始选择.

In IB select this class as the Custom Class in place of UITextField.

This causes the keyboard to select emoji keyboard, if available, when the field becomes first responder. The user can, of course, change the keyboard back to anything else at any time, but at least it gives an initial selection of what you want.

感谢 blld 在这里https://stackoverflow.com/a/58537544/1852207 .

这篇关于将iOS键盘布局更改为表情符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆