2014-05-03 85 views
0

這個問題並不真正問你在表面上會發生什麼。我已經知道如何在Objective-C應用程序中使用自定義字體。問題更多的是關於使用自定義字體的細節,主要是 - 如果我使用自定義字體,假設其他人可能沒有在他們的機器上,它仍然會正確渲染它?如果有人沒有相同的字體,我還沒有看到任何與此有關的內容。Objective-C應用程序中的自定義字體

此外,是否有任何連接與我的問題和界面生成器內的對象?謝謝。

enter image description here

+0

是否要在ios應用程序中使用自定義字體? –

+3

@VineeshTP請看標籤。這顯然是一個OS X程序。 – rmaddy

+1

不,如果你的用戶沒有,字體不會自動工作。您需要將其捆綁到您的應用程序中(**並確保您擁有分發權**)並使用類似於[this one]的方法(http://devmacosx.blogspot.ca/2012/03/nsfont-from- file.html)將字體加載到您的程序中。 – zneak

回答

1

自定義字體只有在用戶擁有它們時才起作用。否則,字體需要與您的程序捆綁在一起,並以類似於this one的方式加載。始終確保允許您使用您的程序分發字體。

-(NSFont*)fontWithName:(NSString*)name height:(CGFloat)height 
{ 
    NSURL* fontURL = [NSBundle.mainBundle URLForResource:name withExtension:@"ttf"]; 
    if (fontURL == nil) 
    { 
     return nil; 
    } 

    CGDataProviderRef dataProvider = CGDataProviderCreateWithURL((CFURLRef)fontURL); 
    if (dataProvider == NULL) 
    { 
     return nil; 
    } 

    CTFontRef coreTextFont = NULL; 
    CGFontRef font = CGFontCreateWithDataProvider(dataProvider); 
    if (font != NULL) 
    { 
     coreTextFont = CTFontCreateWithGraphicsFont(font, height, NULL, NULL); 
    } 

    CGDataProviderRelease(dataProvider); 
    CGFontRelease(font); 
    return CFBridgingRelease(coreTextFont); 
} 
相關問題