You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MDCAlertController的消息内容中设置粗体属性?

问题原因

iOS平台的Material Components库中,MDCAlertController默认会对消息文本应用组件内置的统一字体样式,会覆盖通过attributedMessage构造参数传入的富文本中的字体属性,是该组件的默认设计特性。

解决方案

初始化弹窗时不要直接通过构造方法传入属性化文本,改为手动给内部消息标签赋值,即可绕过默认样式覆盖逻辑,修改后代码如下:

let message = "This should be bold"
let attributedString = NSMutableAttributedString(string: message, attributes: [
    .font: UIFont.systemFont(ofSize: 14)
])
attributedString.addAttribute(
    .font,
    value: UIFont.boldSystemFont(ofSize: 14),
    range: (message as NSString).range(of: "bold")
)

// 初始化时先不传属性化消息
let alert = MDCAlertController(
    title: "Example alert",
    message: nil
)
// 直接给内部消息标签赋值属性化文本
alert.messageLabel.attributedText = attributedString
// 可选:不需要适配动态字体大小时可关闭该属性,避免样式被二次修改
alert.messageLabel.adjustsFontForContentSizeCategory = false

alert.addAction(MDCAlertAction(title: "OK"))
present(alert, animated: true)

运行效果

运行效果截图

内容的提问来源于stack exchange,提问作者user13567120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:36:04