Mac Catalyst中UITextField编辑时出现空气泡如何解决?
解决Mac Catalyst应用中UITextField空白建议气泡问题
以下是几种可行的解决方案,按优先级尝试:
全面关闭文本相关辅助功能
除了拼写检查和更正,还需禁用文本预测、智能标点等功能,同时设置合适的文本内容类型:// 针对目标UITextField实例 textField.autocorrectionType = .no textField.spellCheckingType = .no textField.autocapitalizationType = .none textField.smartQuotesType = .no textField.smartDashesType = .no textField.smartInsertDeleteType = .no textField.textContentType = .none textField.autocompleteDisabled = true // Mac Catalyst专属属性,直接禁用自动补全修改Info.plist禁用间接输入事件
在项目的Info.plist文件中添加键UIApplicationSupportsIndirectInputEvents,将其值设置为NO,这会关闭Mac Catalyst对第三方输入扩展的支持,可能消除空白气泡。子类化UITextField屏蔽所有操作建议
如果上述方法无效,可自定义UITextField子类,通过重写方法禁止所有编辑相关的系统建议:class NoSuggestionTextField: UITextField { override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { // 拒绝所有系统提供的编辑操作及建议 return false } }之后将界面中的UITextField替换为此子类即可。
检查系统级设置
打开Mac系统偏好设置→键盘→文本,确保“输入预测”选项处于关闭状态,部分系统级设置会影响应用内的输入行为。
内容的提问来源于stack exchange,提问作者Eddie Ed
相关产品推荐
相关产品推荐

