2012-01-24 15 views
5

私は30フィートの高さのArialを記述するためにNSFontを作りたいと思っています。これまでのところ私が持っている:NSFont - 正しいフォントを取得するには?

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は右のサイズではありません。私はそこに欲しいどんなサイズでも置くことができ、彼らはすべて同じように見える。

答えて

8

あなたは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]; 

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つの他のフォントスタイル(特性付き)はアルゴリズムによって即時に生成されません。

+0

これは機能しますが、この方法では重量や傾斜を変更できません。 – Justin808

+0

で十分ですか?またはあなたは本当に動的な重量と傾斜をしたいですか? – JeanLuc

+0

うん、すごくうまくいく。ありがとう – Justin808

関連する問題