c# - 获取字体宽度
问题描述
我有这个NSFont
对象:
var font = NSFont(name: "Courier New", size: 5)
我正在尝试获取em-size
字体。您可以使用,但这会返回in 点NSFont.pointSize
的高度。NSFont
我正在寻找字体的宽度。
在C#
我翻译代码的地方,您可以使用
Font font = new Font("Courier New", 5f, FontStyle.Regular, GraphicsUnit.Point);
int widthInPoints = font.SizeInPoints; // Is there an equivalent of this line but in Swift?
另外,我想在我的例子中提到字体总是等宽的。(我想我会使用 Courier New,因为我没有看到 Lucida Console。)
我试过使用:
var widthInPoints = ("w" as NSString).size(withAttributes: [NSAttributedString.Key.font: font]).width
但我不确定这是否正确,因为我只是在寻找字体的宽度而不测量字符串。但是,如果它是正确的,那很好。
我也尝试过使用:
var width = font.boundingRectForFont.width
但再一次,我不确定这是否正确。如果正确,boundingRectForFont
上面返回的值是点还是像素?(该部分的文档还不清楚)
注意:我不是要获取任何字符串的宽度。我只是想获得em-size
字体的。例如,您可以调用SizeInPoints
以C#
获取字体的原始输入大小。然而Swift
,它返回高度而不是宽度。我怎样才能得到宽度呢?
任何帮助将不胜感激。
解决方案
推荐阅读
- azure-data-explorer - 查找两个表之间缺失的值
- python - Matplotlib:将 x 轴标签拟合到图中以进行条形图
- java - JavaFX ImageView 显示 GIFanimation 高 GPU
- string - 使用 awk 连接连续的行
- go - Goroutines 执行后卡住
- asp.net-core - .NET Core 中的异步调用混淆
- bash - 如何在 bash 中缩短长的多重检查变量?
- flutter - 在散点图颤动上禁用网格和轴标签
- javascript - React 高阶组件仅返回带有花括号函数的 defaultProps,但可以使用直接返回函数
- progressive-web-apps - 有没有办法让服务人员知道请求页面的网址?