You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义UITextView启用paste后强制显示已关闭的Memoji/贴纸键盘问题求助

自定义UITextView启用paste后强制显示已关闭的Memoji/贴纸键盘问题求助

各位大佬好!最近测试的时候遇到一个特别诡异的问题,想请教下有没有解决办法:

我在自定义UITextView时重写了canPerformAction方法,专门允许粘贴操作,结果发现这会强制让iOS键盘的Memoji和贴纸板块显示出来——哪怕我已经在iOS系统设置的键盘选项里把它们关掉了!

系统设置情况

我已经在iOS「设置-键盘」里关闭了Memoji和贴纸的相关选项,但问题依然存在。

我的自定义TextView代码

import UIKit
class CustomTextView: UITextView {
    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        if action == #selector(paste(_:)) {
            return true
        }
        // Allow other actions
        return super.canPerformAction(action, withSender: sender)
    }
}

现象对比

  • 加上这段允许paste的代码后:键盘上的贴纸按钮会强制显示出来,完全无视系统设置
  • 不加这段代码:系统设置的开关也好像没生效,不管开不开,贴纸板块的显示状态都不对

这行为真的太不一致了,我翻了好多资料都没找到相关的处理方案。想问问大家有没有办法让键盘正确尊重用户的系统设置?毕竟WhatsApp、Telegram这些主流应用都能做到,肯定有不依赖私有API的 workaround,求指点!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 12:13:00