gpt4 book ai didi

ios - iOS 13 默认显示系统表情符号键盘

转载 作者:行者123 更新时间:2023-12-02 00:04:05 27 4
gpt4 key购买 nike

解决方案

这是一个full solution/work关于这个问题,请投票 Blld 的 answer也是因为这是所需的重要信息!

辅助搜索的替代标题

  • 将表情符号键盘显示为 UIKeyInput 对象的默认设置(在 iOS 13 中)
  • 强制 iOS 13 显示表情符号键盘
  • UITextInputMode.primaryLanguage 设置为表情符号
  • 以编程方式将键盘设置为表情符号

之前返回带有等于“表情符号”的 primaryLanguageUITextInputMode 将默认显示表情符号键盘(见下图)。

Emoji keyboard screen shot

返回“表情符号”的示例代码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 上运行此代码会将键盘设置为系统表情符号键盘,但在 iOS 13 上没有任何影响。

这是一个已知的错误吗?有解决方法吗?

更新

  • 请求者:@Navillus ,“事件输入模式”的完整列表是; "en-GB", "表情符号"
  • 已测试并确认; 13.0、13.1、13.1.1、13.1.2 和 13.2(种子 1)

最佳答案

我针对 iOS 13 提交了雷达,因为我有一个日语/英语双语应用程序。有些字段是日语,有些是英语,因此显然向用户提供正确的键盘类型而不是让他们来回翻转 20 次是有意义的。

对此有一个解决方法,那就是在 UIKit 调用“textInputMode”之后,您可以在主线程中执行以下操作:

// has to be done after the textInputMode method is called
if #available(iOS 13, *) {
textField.keyboardType = textField.keyboardType
}

这会强制键盘在使用您想要的 textInputMode 应答后重新加载。我向他们通报了该错误以及获得正确行为的解决方法。

因此,在 iOS 13.1 中,该错误并未得到修复,但它们阻止了我的解决方法。

不错。我不会再向他们报告任何错误。相反,如果我找到解决方法,我就会使用它。

所以看来他们现在正在默默地禁用此功能。它是一个功能,这实际上就是这个方法调用的目的,找出应该向用户呈现什么输入模式。

如果您有其他语言并且想要选择英语,它仍然可以正常工作

因此,如果我的用户将日语设置为键盘选择,那么我可以强制使用英语键盘。只是不是相反。任何获得日语输入模式的尝试都会以英语键盘告终。

编辑:

还有另一种方法可以解决这个问题,但它涉及内部 API 的发现和使用,这并不简单。您必须本质上找到用于管理点击地球按钮的结果的函数。如果您这样做,您实际上是在模拟用户的点击,并且它具有广泛的效果,也就是说,键盘也会针对其他应用程序进行更改。所以不推荐,100%会提交App Store失败。由于我上次解决方法的结果,我不想发布它。

我认为不太容易理解苹果。我所知道的是:

  1. API 未按照发布的方式运行
  2. 已报告,但他们没有修复该错误
  3. 自报告之日起,他们(有意或无意)违反了解决方法

因此, future 的解决方法应该被囤积起来,直到他们的意图明确和/或他们修复了这个错误(这是他们应该做的)。简单地撤销部分 API 而不发布更改是一个主要错误。

关于ios - iOS 13 默认显示系统表情符号键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58168017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com