簡體   English   中英

NSFont - 如何獲得正確的字體?

[英]NSFont - How to get the right font?

我想讓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 App中運行正常:

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];

更新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種其他字體樣式(具有特征)不是由算法動態生成的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM