当前位置: 首页 > 面试题库 >

不使用表情符号键盘调用UIKeyboardWillChangeFrame通知

朱经武
2023-03-14
问题内容

首先,我有一个UIViewController监听UIKeyboardWillShow通知,以调整键盘的屏幕。但是每次我改用表情符号键盘时,都不会调用该通知。

所以,我改为这样的UIKeyboardWillChangeFrame通知

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardChanged(notification:)), name: NSNotification.Name.UIKeyboardWillShow, object: nil)

如果我只是通过点击键盘类型更改为表情符号,那似乎可以正常工作。

但是,如果我按住键盘类型进行选择(我的键盘使用多种语言)并选择表情符号键盘,则不会触发该通知。

有人以前有这样的东西吗?有什么建议?


问题答案:

这是iOS 11中的错误,但有一个 临时的解决方案:

您可以收听语言模式更改:

NotificationCenter.default.addObserver(self, selector: #selector(inputModeDidChange(_:)), name: .UITextInputCurrentInputModeDidChange, object: nil)

并检查表情符号:

if([[UITextInputMode currentInputMode].primaryLanguage isEqualToString:@"emoji"]) // layout again


 类似资料:
  • 获取系统emoji表情,实现表情键盘,输入框能够随着输入文字的长度而自动增长,模仿微信键盘,能够切换文字键盘和表情键盘。 [Code4App.com]

  • 我正在尝试使用selenium创建自动化,以安装chrome扩展。当我尝试在amazon虚拟机上运行这个jar时,我遇到了一个问题,因为当我尝试用robot类按enter键时,它不起作用,因为我没有连接物理键盘。我不能在selenium中使用sendkeys,因为来自google的pop不在同一页面,selenium无法识别它。有什么解决办法吗?

  • 问题内容: 我试图从unicode鸣叫文本中删除表情符号,并使用python 2.7打印出结果 但似乎几乎所有字符都已从文本中删除。我检查了其他帖子的几个答案,很遗憾,这些答案都无法在此工作。我在re.compile()中做任何错吗? 这是一个示例输出,其中删除了所有字符: 问题答案: 您未对非BMP unicode点使用正确的符号;您要使用, 大写 和8位数字: 可以简化为: 因为您的前两个范围

  • 我正在处理一个discord bot,当用户对bot消息做出反应时,首先它应该检查用户是否连接到语音频道,如果连接到了,则bot应该加入语音频道,我正在使用,它只返回反应和用户。 如何获得会员语音通道与用户或反应?

  • 问题内容: 我想有一个正则表达式模式来匹配表情符号“ :)”,“ :(”。此外,它还应捕获重复的表情符号,例如“ :) :)”,“ :) :(”,但过滤掉无效的语法,例如“ :( (“。 我有这个,但它匹配“ :((” 我可能在这里遗漏了一些明显的东西,希望为这个看似简单的任务提供帮助。 问题答案: 我认为它终于“点击了”您所要询问的内容。看一下下面的内容: 您原始代码的问题是您的正则表达式是错误

  • 问题内容: 我正在尝试在Java控制台应用程序中输入信息,但似乎无法运行它。 这是我的Java文件的样子: 但是我得到了错误: 我的源文件夹中有一个keyboard.class文件。我将Eclipse与Ubuntu结合使用。 问题答案: 表示无法编译代码。 您必须导入Keyboard,类似 当您使用不同包中的类(不是当前类的同一包)时,必须导入该类。如果该类也位于同一包中,则无需导入。 通常将类分