你打字的时候,有没有遇到过系统键盘突然不给纠错、还弹个提示的情况?这不是键盘坏了。苹果在 iOS 18.1 里悄悄扩展了一份“灰名单”(grey list),一批单词和短语被系统键盘刻意拒绝自动纠错、也不给拼写建议。
名单里包括各类脏话、歧视性称呼,甚至还有一些带政治色彩的词。输入这些字符串时,键盘会显示警告,并且不提供任何拼写辅助。这项改动随 iOS 18.1 推送,而且是系统级生效的,不只局限在“信息”应用里。
对开发者来说,这不只是一个界面上的小毛病。很多生产力应用——笔记、IDE、聊天客户端——都依赖系统默认键盘完成快速输入。一个被灰名单拦下的词,可能直接打断工作流,尤其是那些用特定词汇做内部玩笑或代码名的团队。
影响面比想象中宽:
- 自动化与测试:UI 自动化脚本如果输入预设字符串(比如含“admin-root”的测试数据),在真机上会直接失败,除非显式切换键盘或关闭自动纠错。
- AI 驱动功能:自带预测文本或基于大模型建议的应用,常常回退到系统键盘做兜底纠错。灰名单会静默覆盖你训练的自定义模型,导致意想不到的错配。
- 合规与策略:企业部署场景下,IT 管理员需要知道苹果实际上在操作系统层面过滤了某些词汇。如果合规规则要求记录所有输入数据,就得把“某些字符串永远不会通过原生键盘输入”这件事算进去。
只要你的产品涉及 iOS 上的用户生成文本,从简单的记事本到完整的 AI 代码助手,今天就得正视这个行为。可行的应对方式有几种。
用代码检测灰名单。可以查询 UITextChecker 获取某个词的拼写建议。如果返回的数组为空、而词本身非空,大概率就撞上了灰名单。拿到结果后,可以给用户一个自定义提示,比如“该词被 iOS 拦截,你仍可用第三方键盘输入”。
用自定义键盘或文本替换绕过。如果应用自带键盘扩展,可以自己接管输入:命中灰名单时,直接把原始文本插入输入代理,跳过系统自动纠错;否则走正常路径。另一条路是让用户在“设置 → 通用 → 键盘 → 文本替换”里,为被拦短语配一个短快捷方式——替换是在灰名单检查之后应用的,所以这招有效。
测试环节换键盘。在模拟器上跑 UI 测试时,可以临时切到不带自动纠错的键盘类型,确保测试数据不会被静默丢弃。
调整大模型提示词。如果应用内嵌了大模型做代码建议,在发送前加一步清洗,把灰名单里的词替换成占位符,既保留语义,又避开系统级拦截。
从基础设施的角度看,最稳妥的做法是把灰名单当成一份契约:假定任何字符串都可能被操作系统拒绝,并据此设计数据流。具体包括:在服务端保留用户生成文本的规范副本(静态加密),设备键盘只用于显示;用功能开关为企业客户切换自定义键盘;监控崩溃日志里 UITextChecker 的拼写检查路径,突然的峰值可能意味着苹果又加了新词。
实际落地时,可以在 Swift UI 组件里加一个轻量的“拼写感知”中间层,记录被拦截的词并自动回退到自定义键盘。开销可以忽略不计,每词约 2 毫秒,但能省掉线上一堆莫名其妙的界面 bug。
这件事提醒的是:平台策略会直接影响 AI 产品的可靠性。工程师需要把这类策略在设计阶段就摆到台面上,通过配置暴露出来,并围绕它建立可观测性。做 iOS 相关的 AI 或自动化工具,先花几分钟给灰名单做个 sanity check,能省下后面大量支持工单。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.