使用NSAttributedString绘图时在非视网膜Mac上的字体渲染模糊

时间:2019-04-05 17:54:46

标签: swift macos cocoa fonts rendering

我正在NSAttributedString内使用draw(at:)的{​​{1}}函数,以在窗口内以自定义字体呈现一些文本。
但是,在非视网膜MacBook(在内部显示屏和外部LCD上)运行时,字体看起来很奇怪并且太重了。
由于我能够在同一台计算机上的Sketch中完美地再现所需的结果,因此我认为这是我的代码存在的问题。

到目前为止,这是我的代码:

NSView

下面的屏幕快照显示了Sketch-File和在同一显示器上运行的应用之间的差异(左:Sketch应用中的图形,右:以上代码的输出):

Sketch-App comparison.

应用程序的代码和Sketch图形都使用Apple的“ SF Pro Text”字体,字体粗细为“ Semibold”,大小为22个单位。

在这里找出出了什么问题的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这可能是臭名昭著的“半像素”问题。试试:

drawableString.draw(at: NSPoint(x: 0.5, y: 0.5))

有关此here的一些信息(在页面上搜索“点和像素”)。