3

我是 Objective-C 的新手,我需要一些帮助 我的问题是我有一个 的子类UITextField,我想使用此代码将占位符字体设置为自定义

- (void)drawPlaceholderInRect:(CGRect)rect {
[[self placeholder] drawInRect:rect withAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"Georgia Belle" size:25],NSForegroundColorAttributeName:RGBA(174, 150, 108, 1)}]; } 

我有下一个问题。当我在模拟器中选择 iPad 并编译程序时,一切正常,但是当我选择视网膜设备时,我得到下一个异常:

 [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0].

我要问的是:为什么它适用于非视网膜但在视网膜上抛出异常,任何类型的视网膜设备。

4

2 回答 2

2

你的问题是你的字体。

HelveticaNeueInterface-Regular是系统字体。喜欢:[UIFont systemFontOfSize:25]

另一方面,我不能使用RGBA(174, 150, 108, 1)我的代码有问题。

您应该确保在项目中导入了名为“Georgia Belle”的字体。

将Georgia Belle.ttf 拖放到您的项目中

在此处输入图像描述

打开 Info.plist 并添加一个新行:

在此处输入图像描述

打开你的 Target / Build Phases / Copy Bundle Resources
Xcode 在这里失败,有时它没有添加我们的新字体:

在此处输入图像描述

点击 +

在此处输入图像描述

完毕

在此处输入图像描述

问题解决了。

在此处输入图像描述 在此处输入图像描述

你可以从 GitHub 下载我的解决方案

最后一件事。这是一个包含所有标准 ios 字体的好网站:http: //iosfonts.com

于 2014-07-03T09:30:03.520 回答
1

您必须将字体添加到复制包资源

于 2014-07-11T08:26:39.213 回答