gpt4 book ai didi

objective-c - NSFont - 如何获得正确的字体?

转载 作者:太空狗 更新时间:2023-10-30 03:50:11 25 4
gpt4 key购买 nike

我想制作一个 NSFont 来描述 Arial,正常,高度为 30pt。到目前为止,我有:

    NSNumber *weight = [NSNumber numberWithFloat:1.0];
NSNumber *slant = [NSNumber numberWithFloat:1.0];
NSDictionary *fontTraits = [NSDictionary dictionaryWithObjectsAndKeys: weight, NSFontWeightTrait, slant, NSFontSlantTrait, nil];
NSDictionary *fontAttributes = [NSDictionary dictionaryWithObjectsAndKeys: @"Arial", NSFontFaceAttribute,
fontTraits, NSFontTraitsAttribute, nil];
NSFontDescriptor *fontDescriptor = [NSFontDescriptor fontDescriptorWithFontAttributes: fontAttributes];
NSFont *largeFont = [NSFont fontWithDescriptor: fontDescriptor size: 30];

但是生成的 NSFont 大小不正确。我可以放任何我想要的尺寸,它们看起来都一样。

最佳答案

您是为 iOS 还是 Mac OS X 编写代码?

这在我的 Mac 应用程序中运行良好:

NSFont* font = [NSFont fontWithName:@"Arial" size:30];

UPDATE 粗体和/或斜体:这对你来说够了吗?

NSFont* font = [NSFont fontWithName:@"Arial Italic" size:30];
NSFont* font = [NSFont fontWithName:@"Arial Bold" size:30];
NSFont* font = [NSFont fontWithName:@"Arial Bold Italic" size:30];

UPDATE 2 可以看看 NSFontManager

// convert font
NSFont* font = [NSFont fontWithName:@"Arial" size:30];
font = [[NSFontManager sharedFontManager] convertFont:font toHaveTrait:NSFontItalicTrait];

// create with traits and weight
NSFont* font = [[NSFontManager sharedFontManager] fontWithFamily:@"Arial" traits:NSFontItalicTrait weight:2 size:30];

但是使用这两种方法都无法创建粗细为 5 且倾斜度为 4 的字体。

我最近和一位设计师谈到了字体,他告诉我通常像 Arial 这样的字体实际上是 4 种字体(即 Arial、Arial Italic、Arial Bold 和 Arial Bold Italic)。这 3 种其他字体样式(具有特征)不是由算法即时生成的。

关于objective-c - NSFont - 如何获得正确的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8993625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com