我的 Mac OS 应用程序使用如下代码绘制一些文本:
void drawString(NSString* stringToDraw)
{
NSFontManager *fontManager = [NSFontManager sharedFontManager];
NSString* fontName = [NSString stringWithCString: "Helvetica" encoding: NSMacOSRomanStringEncoding];
NSFont* font = [fontManager fontWithFamily:fontName traits:0 weight:5 size:9];
NSMutableDictionary *attribs = [[NSMutableDictionary alloc] init];
[attribs setObject:font forKey:NSFontAttributeName];
[stringToDraw drawAtPoint:NSMakePoint (0, 0) withAttributes:attribs];
}
由于文本绘图在应用程序中只占很小的一部分,因此这种简单的方法到目前为止效果很好。但是现在有了新的 Retina 显示屏,用户抱怨文本与其他图形相比显得太大了。似乎给出绝对字体大小(在我的情况下为 9)不再有效。
如何修复此代码以使其适用于视网膜和非视网膜显示器?