Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在mac应用程序中显示字体预览?_Objective C_Cocoa_Macos - Fatal编程技术网

Objective c 如何在mac应用程序中显示字体预览?

Objective c 如何在mac应用程序中显示字体预览?,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我必须显示字体的字体预览。为此,我只是从字体中复制了字符集,然后显示为预览。这是我的代码 NSString *fontName=@"aFontName"; CFStringRef CFFontName = (CFStringRef)fontName; CTFontRef fontRef = CTFontCreateWithName(CFFontName, 0.0,NULL); NSCharacterSet *characterset = (NSCharact

我必须显示字体的字体预览。为此,我只是从字体中复制了字符集,然后显示为预览。这是我的代码

     NSString *fontName=@"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];
            }
        }


    }
NSString*fontName=@“aFontName”;
CFStringRef CFFontName=(CFStringRef)fontName;
CTFontRef fontRef=CTFontCreateWithName(CFFontName,0.0,NULL);
NSCharacterSet*字符集=(NSCharacterSet*)CTFontCopyCharacterSet(fontRef);
unichar idx;
NSString*str=[[NSString alloc]init];
对于(idx=0;idx<65000;idx++)
{
if([characterset CharacterizeMember:idx])
{
如果(isprint(idx)){
NSString*str2=[NSString stringWithFormat:@“%c”,idx];
str=[strStringByAppendingString:str2];
}
否则{
NSString*str1=[NSString stringWithFormat:@“%C”,idx];
str=[str stringByAppendingString:str1];
}
}
}

最后,在文本视图中,我将
str
中的字符串显示为字体预览。但是str有很多不需要的字符(对于印地语字体,它也显示了英语字符)。我认为这不是显示字体预览的正确方式。是否有其他方式显示字体预览,如mac中的FontBook应用程序?

FontBook正在使用专用例程从字体中获取示例字符串。如果你的应用程序可以使用私有例程,那么你可以简单地定义:

CFStringRef CTFontCopySampleString(CTFontRef font, int options);
然后像这样打电话:

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

您将获得与FontBook节目相同的字符串。

谢谢您,先生。。。它工作得很好。。但是有没有什么方法可以在不使用私有例程的情况下获得这样的示例字符串?看起来没有公共例程可以这样做。好的,谢谢您,先生。。。。。如果你不介意的话,我可以知道我在哪里可以得到这种私人的学习习惯吗?