2012-01-24 16 views
5

मैं ऊंचाई, सामान्य, 30pt ऊंचाई में वर्णन करने के लिए एक 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]; 

लेकिन परिणामस्वरूप एनएसफ़ॉन्ट सही आकार नहीं है। मैं वहां कोई भी आकार डाल सकता हूं जो मैं चाहता हूं और वे सभी समान दिखते हैं।

उत्तर

8

क्या आप आईओएस या मैक ओएस एक्स के लिए लिख रहे हैं?

यह मेरा मैक App में ठीक काम करता है: बोल्ड और/या इटैलिक साथ

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

अद्यतन: कि आप के लिए पर्याप्त है?

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.

की एक तिरछा के साथ एक फ़ॉन्ट बनाने में सक्षम हैं

मैंने हाल ही में फोंट के बारे में एक डिजाइनर से बात की और उसने मुझे बताया कि आम तौर पर एरियल जैसे फ़ॉन्ट वास्तव में 4 फ़ॉन्ट्स (यानी एरियल, एरियल इटालिक, एरियल बोल्ड और एरियल बोल्ड इटालिक) हैं। उन 3 अन्य फ़ॉन्ट शैलियों (लक्षणों के साथ) एक एल्गोरिदम द्वारा फ्लाई पर उत्पन्न नहीं होते हैं।

+0

यह काम करता है, लेकिन मैं चीजों को करने की इस विधि के साथ वजन या स्लैंट नहीं बदल सकता। – Justin808

+0

क्या आपके लिए पर्याप्त है? या आप वास्तव में गतिशील वजन और slant चाहते हैं? – JeanLuc

+0

yup, जो अद्भुत काम करता है। धन्यवाद – Justin808

संबंधित मुद्दे