我可以想到两种方法,但都没有给出与+[NSFont systemFontOfSize:weight:]
.
一是使用-[NSFontManager convertWeight:ofFont:]
。这只允许您增加或减少体重,而不是选择特定的目标体重。但是,如果它提供了一种新字体,您可以查询-[NSFontManager weightOfFont:]
以获取它的权重,其中 3 的值是“轻”(参见表-convertWeight:ofFont:
)。通过重复该过程,您可能能够获得所需的重量,尽管该方法可能会失败或超调。
另一种是从字体到字体描述符到具有所需权重的新字体描述符到新字体:
NSFontDescriptor* origDescriptor = origFont.fontDescriptor;
NSFontDescriptor* newDescriptor = [origDescriptor fontDescriptorByAddingAttributes:@{ NSFontTraitsAttribute: @{ NSFontWeightTrait: @(-0.2) } }];
NSFont* newFont = [NSFont fontWithDescriptor:newDescriptor size:origFont.pointSize];
这里我只是随意选择了-0.2。这种方法的问题在于它将权重作为从 -1.0 到 1.0 的值,而 0 是“正常”。目前尚不清楚如何将该比例映射到“轻量级”。我想您可以通过名称查询您获得的一些轻量字体,以查看它们的权重是多少。