iOS应用进入时如何自动切换到自定义键盘,无需用户手动设置?
结论先行
不需要引导用户进入系统设置页面,就可以实现应用内所有输入场景仅唤起自定义键盘、不弹出系统默认键盘的需求,具体实现方案分系统如下:
实现方案
iOS 端
- 无需开发系统级键盘扩展,也无需引导用户在系统设置中添加启用你的键盘,直接自定义
UIView作为你的自定义键盘视图即可 - 所有应用内的输入控件(
UITextField、UITextView)都将inputView属性赋值为你的自定义键盘视图,系统就会默认弹出你自定义的视图,不会唤起系统默认键盘 - 基础输入能力可以直接调用输入控件的原生方法实现,比如插入文本调用
insertText(_:)、删除内容调用deleteBackward();如果已经开发了系统扩展键盘,直接将键盘视图抽为公共组件复用即可
Android 端
- 无需申请系统输入法权限,也无需引导用户在系统设置中切换默认输入法
- 给所有应用内输入控件设置
setShowSoftInputOnFocus(false),禁用系统键盘的自动唤起,同时自定义View作为你的自定义键盘布局 - 搭配
InputConnection实现输入交互,插入文本调用commitText()、删除内容调用deleteSurroundingText()即可实现和系统键盘完全一致的输入效果
注意事项
- 上述方案实现的自定义键盘仅在你的应用内部生效,不会影响其他应用的使用,也不需要用户授予额外权限,完全满足你提到的键盘预览、应用内全场景仅展示自定义键盘的需求
- 仅当你需要让用户在其他应用中也能使用你的自定义键盘时,才需要开发系统级键盘扩展,引导用户进入系统设置页面启用
内容的提问来源于stack exchange,提问作者Anh vu
相关产品推荐
相关产品推荐

