如何解决使用MaterialComponent时MDCTextField的弃用警告?
解决MDCTextField弃用,迁移至Material Text Controls
核心迁移步骤
更新Pod依赖:在
Podfile中替换原有的MaterialComponents/TextFields为TextControls相关组件,根据你需要的文本框样式选择:# 外框样式浮动标签文本框 pod 'MaterialComponents/TextControls+OutlinedTextFields' # 填充样式浮动标签文本框 pod 'MaterialComponents/TextControls+FilledTextFields'执行
pod update完成依赖更新。替换控件类:将代码中所有
MDCTextField替换为对应新控件:- 外框样式用
MDCOutlinedTextField - 填充样式用
MDCFilledTextField
- 外框样式用
调整属性配置:新控件API与旧版略有差异,浮动标签默认自动启用,无需额外设置
floatingEnabled,示例对比:// 旧MDCTextField写法 let oldTextField = MDCTextField() oldTextField.floatingEnabled = true oldTextField.placeholder = "请输入内容" // 新MDCOutlinedTextField写法 let newTextField = MDCOutlinedTextField() newTextField.label.text = "请输入内容"适配代理逻辑:将原
MDCTextFieldDelegate替换为MDCTextControlDelegate,代理方法参数会变为MDCTextControl类型,对应调整实现即可。
额外适配说明
- 若使用Storyboard/XIB开发,直接在控件库中选择
Outlined TextField或Filled TextField替换原有MDCTextField,再通过属性面板调整样式。 - 确保Material Components版本在v118及以上,旧版本可能未完整支持TextControls功能。
内容的提问来源于stack exchange,提问作者AKA
相关产品推荐
相关产品推荐

