解决方案
这是一个完整的解决方案/工作方法,可以解决这个问题,请同时为Blld的答案投票,因为这是所需的关键信息!
替代标题以辅助搜索
- 将表情符号键盘显示为UIKeyInput对象的默认键盘(在iOS 13中)
- 强制iOS 13显示表情符号键盘
- 将
UITextInputMode.primaryLanguage
设置为表情符号 - 通过编程方式将键盘设置为表情符号
在ios13之前,返回与primaryLanguage
等于“emoji”的UITextInputMode
会默认显示表情符号键盘(请参见下图)。
返回“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
}
}
在iOS 12上运行此代码将设置键盘为系统Emoji键盘,但在iOS 13上没有影响。这是已知的错误吗?是否有解决方法?
更新:
- @Navillus提出的“活动输入模式”完整列表为:“en-GB”,“emoji” - 在13.0、13.1、13.1.1、13.1.2和13.2(种子1)上进行了测试并确认。