2011-08-10 4 views
2

フォントのフォントプレビューを表示する必要があります。そのために、フォントから文字セットをコピーした後、プレビューとして表示しました。これは私のコーディングです。Macアプリケーションでフォントプレビューを表示するには?

 NSString *[email protected]"aFontName"; 

    CFStringRef CFFontName = (CFStringRef)fontName; 
    CTFontRef fontRef = CTFontCreateWithName(CFFontName, 0.0,NULL); 

    NSCharacterSet *characterset = (NSCharacterSet *) CTFontCopyCharacterSet (fontRef); 
    unichar idx; 
    NSString *str=[[NSString alloc]init]; 
    for(idx = 0; idx < 65000; idx++) 
    { 
     if ([characterset characterIsMember: idx]) 
     { 
      if (isprint(idx)) { 
       NSString *str2 = [NSString stringWithFormat:@"%c",idx]; 
       str=[str stringByAppendingString:str2]; 
      } 
      else { 
       NSString *str1 = [NSString stringWithFormat:@"%C",idx]; 
       str=[str stringByAppendingString:str1]; 
      } 
     } 


    } 

そして最後のTextViewにIフォントプレビューとしてstrから文字列を示しました。しかし、strには、多くの望ましくない文字があります(ヒンディー語のフォントでは英語の文字も表示しています)。私はそれがフォントのプレビューを表示するための正しい方法ではないと思う。 FontBook macのようなフォントプレビューを表示するための他の方法はありますか?

答えて

2

FontBookはプライベートルーチンを使用して、フォントからサンプル文字列を取得しています。

CFStringRef CTFontCopySampleString(CTFontRef font, int options); 

をとのように呼び出します:民間ルーチンはアプリの大丈夫です場合は、単純に定義することができ

NSString* sample = (NSString *) CTFontCopySampleString(fontRef, 0); 

とFontBookに示すように、あなたは同じ文字列を取得します。

+0

ありがとうございました...それは完璧に働いています。しかし、プライベートルーチンを使用せずにサンプルの文字列を取得する方法はありますか? – Aravindhan

+0

これを行うための公開ルーチンがあるようには見えません。 –

+0

okありがとうございました......あなたが気にしないなら、私はこのタイプの私的なルーチンをどこで勉強するのか分かりますか? – Aravindhan

関連する問題