将键盘布局更改为表情符号 [英] change the keyboard layout to emoji
问题描述
当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
推荐答案
像这样创建一个UITextField的子类:
Create a subclass of UITextField like this:
class EmojiTextField: UITextField {
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.
这篇关于将键盘布局更改为表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!