iOS开发如何实现应用内仅显示英文键盘?
iOS应用强制全局显示英文键盘实现说明
需求可行性
可以实现,即使设备系统语言非英文、安装了多语言键盘,也能做到应用内所有输入框默认弹出英文键盘,你的Xcode 12.4、iOS 14.4的适配场景完全支持该能力。
实现方案
方案1:单独配置单个输入控件
针对每个UITextField/UITextView手动设置键盘属性即可生效,代码示例:
- Objective-C版本
// 强制使用ASCII英文键盘 textField.keyboardType = UIKeyboardTypeASCIICapable; // 关闭自动拼写纠正,避免非英文联想弹出 textField.autocorrectionType = UITextAutocorrectionTypeNo;
- Swift版本
textField.keyboardType = .asciiCapable textField.autocorrectionType = .no
方案2:全局统一配置(无需逐个修改输入控件)
可以通过Runtime方法交换,在所有输入控件加载时自动配置键盘属性,实现全局生效:
- 分别给
UITextField和UITextView添加Category/Extension - 交换系统的
didMoveToSuperview方法,在自定义实现中统一设置上述keyboardType和autocorrectionType属性 - 若少数场景需要使用其他键盘,手动给对应输入控件重新设置键盘属性即可覆盖全局配置,优先级更高。
注意:该方案不会影响设备系统和其他App的键盘设置,仅在当前应用内生效。
内容的提问来源于stack exchange,提问作者Ashok
相关产品推荐
相关产品推荐

