自定义字体的UIFont因Nil而失败

way*_*neh 12 iphone objective-c uifont custom-font

我正在尝试在Xcode 4.2中为我的项目添加自定义字体,但每当我尝试使用它时,我都会收到对象为零的错误.

我已经完成了以下操作:
1)在我的.plist'为应用程序提供的字体中添加了一行'value:"LCDMono2 Ultra.ttf"
2)在我的支持文件中添加了字体并在XCode中显示它以验证它是否已添加.
3)使用获取信息验证全名是"LCDMono2 Ultra"
4)在我的项目中创建字体:

UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16];
Run Code Online (Sandbox Code Playgroud)

我尝试过这个变种:

UIFont *myFont = [UIFont fontWithName:@"LCDMono2 Ultra" size:16.f];
Run Code Online (Sandbox Code Playgroud)

5)试图使用字体名称(addObject:myFont.fontName),生成'nil'错误.

可能导致错误的原因是什么?这可能是名字中的空间吗?

way*_*neh 13

将其添加到项目后,将自动删除字体全名中的空格.我检查了原始字体文件,空间就在那里,所以Apple一定不想处理空格.我将引用更改为"LCDMono2Ultra"并且它可以工作.

  • 它不是"不想处理空间",我相信它使用的是字体的PostScript名称. (4认同)
  • 大卫邓纳姆是对的.通常,如果您要在代码中对字体名称进行硬编码,则应始终使用完整的PostScript名称来引用该字体.(PostScript名称本身不允许使用空格).如果您不确定它是什么,请在Mac上使用Font Book安装字体,然后在Font Book中选择"预览>显示字体信息"以显示各种名称,包括PostScript名称.PostScript名称"LCDMono2 Ultra"是"LCDMono2Ultra". (4认同)

Ric*_*ich 11

我有几个小时这个完全相同的问题并尝试了以上所有并且没有工作,字体被添加到它应该是的任何地方我甚至尝试在其他应用程序中工作的字体,但似乎从未出现过这个应用程序.

看来Xcode 5中的某些内容发生了变化,必须在信息选项卡下的目标属性中添加字体才能使用,而之前必须将它们添加到"appName-info.plist"中,请参见下图:

希望这有助于其他人.

在此输入图像描述