NSTextField 如何设置 NSAttributedString 的 TextStyle 属性

问题描述

我正在尝试以编程方式创建一个具有 NSFont.TextStyle.headline 字体样式的 NSTextField。也可以从故事板的 font 下拉菜单中设置此字体。

但是,当我执行以下操作时:

let attributes: [NSAttributedString.Key : Any] = [NSAttributedString.Key.font : NSFont.TextStyle.headline]
let attributedString = NSAttributedString(string: product.url,attributes: attributes)
let textLabel = NSTextField(labelWithAttributedString: attributedString)

我的应用程序崩溃并出现以下错误

-[__NSCFConstantString pointSize]: unrecognized selector sent to instance 0x7fff8064f918

解决方法

我们需要获取与文本样式相关联的对应字体。

将这些常量传递给 preferredFont(forTextStyle:options:) 或 preferredFontDescriptor(forTextStyle:options:) 以检索相应的字体或字体描述符。

因此:

let attributes: [NSAttributedString.Key : Any] = [NSAttributedString.Key.font : NSFont.preferredFont(forTextStyle: NSFont.TextStyle.headline,options: [:])]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...