自定义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
相关产品推荐
相关产品推荐

