代码之家  ›  专栏  ›  技术社区  ›  Arne Evertsson

如何创建粗体和斜体的NSFont?

  •  9
  • Arne Evertsson  · 技术社区  · 16 年前

    这是一个关于Cocoa中字体处理的初学者问题。我有一个字体家族。 威尔达纳 ,具有以下字体: , 大胆的 , ,和 粗体斜体 . 我知道这些字体是存在的,因为它们可以在字体面板中找到。

    NSFont *regular = [NSFont fontWithName:@"Verdana" size:75];
    NSFont *bold = [NSFont fontWithName:@"Verdana-Bold" size:75];
    NSFont *italic = [NSFont fontWithName:@"Verdana-Italic" size:75];
    

    这不起作用:

    NSFont *boldItalic = [NSFont fontWithName:@"Verdana-Bold Italic" size:75];
    

    最简单的方法是什么 粗体斜体

    4 回复  |  直到 16 年前
        1
  •  23
  •   Arne Evertsson    16 年前

    这样做有效:

    NSFontManager *fontManager = [NSFontManager sharedFontManager];
    NSFont *boldItalic = [fontManager fontWithFamily:@"Verdana"
                                              traits:NSBoldFontMask|NSItalicFontMask
                                              weight:0
                                                size:75];
    
        2
  •  8
  •   Shebuka    8 年前

    请参见NSFontManager和-convertFont:toHaveTrait:

    更详细的信息,我建议阅读 Font Handling Guide Converting Fonts Manually .

    如果最终您希望将斜体特征添加到没有斜体特征的字体中,请检查:

    How do I get Lucida Grande italic into my application?

        3
  •  7
  •   kennytm    16 年前

    Verdana-BoldItalic

    (字体的粗体斜体变体的实际名称取决于系列,而某些字体没有粗体斜体,请使用 NSFontDescriptor 具有 -fontDescriptorWithSymbolicTraits: 以获得准确的粗体斜体字体。)

        4
  •  -1
  •   tiritea    7 年前