Ios 向工具栏按钮项添加自定义字体

Ios 向工具栏按钮项添加自定义字体,ios,xcode,fonts,Ios,Xcode,Fonts,我试图添加自定义字体到一个酒吧按钮项目,但我得到这个崩溃 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]' *** First throw call stack: 我很确定我添加的字体是正确的,它在我的info.plist中,自定义字体显示在IB中 以下是我设置字体的方式: NSDictionary *barButtonAppea

我试图添加自定义字体到一个酒吧按钮项目,但我得到这个崩溃

-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
*** First throw call stack:
我很确定我添加的字体是正确的,它在我的info.plist中,自定义字体显示在IB中

以下是我设置字体的方式:

 NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"OpenSans-Regular" size:12.0], NSForegroundColorAttributeName: [UIColor whiteColor]};
    [[UIBarButtonItem appearance]setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];
你知道我为什么会犯这个错误吗

这就是我添加字体的方式


要在应用程序中添加自定义字体,以下是一个有用的指南:

您可以使用本教程仔细检查自定义字体

无论您使用何种方法添加自定义字体,请在应用程序中加载字体时运行以下代码检查字体名称。它将列出应用程序中可用的所有字体

for (NSString* family in [UIFont familyNames])
{
    NSLog(@"%@", family);

    for (NSString* name in [UIFont fontNamesForFamilyName: family])
    {
        NSLog(@"  %@", name);
    }
}
然后,您可以在系统中获得字体的名称

我不知道如何添加自定义字体,但一般来说,加载的常规字体没有常规后缀

那么,替换

NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"OpenSans-Regular" size:12.0], NSForegroundColorAttributeName: [UIColor whiteColor]};


如果您使用
[UIFont systemFontOfSize:12]
而不是自定义字体,问题是否仍然存在?我很确定问题与我的自定义字体有关。我将字体名称改为@“HelveticaNeue Medium”,应用程序运行正常,并更改了字体。所以这与我如何实现自定义字体有关。。。但我不确定我到底做错了什么@AzatSince您没有提供有关如何安装字体、如何将其添加到Info.plist以及如何验证真实字体名称的详细信息,没有人可以帮助您。谢谢,我实际上完全遵循了该教程,并且在我记录字体名称时,我的自定义字体不会显示……啊。@Andy字体名称很少与文件名完全匹配。再次扫描日志输出中的字体。在一个测试中,删除字体条目并再次运行此代码,查看输出是否有任何不同。
NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"OpenSans" size:12.0], NSForegroundColorAttributeName: [UIColor whiteColor]};