【发布时间】:2014-08-23 08:44:23
【问题描述】:
我是 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].
我要问的是:为什么它在非视网膜上有效,但在视网膜上抛出异常,任何类型的视网膜设备。
【问题讨论】:
-
我会将您的方法分成单个块。首先在变量中获取字体,颜色,然后调用方法。现在您可以逐步调试代码,看看为什么您可能没有得到字体对象。
-
我试过了,但还是会发生
-
你的调试器告诉你什么。你真的得到了 NSFont 对象吗?
-
按照@Flovdis 的建议,我会记录属性字典的每个值。
-
是的,我有,但这很明显,因为否则它将无法在非视网膜设备上工作,正如我所说:在非视网膜设备上它正在工作。
标签: ios uitextfield uicolor uifont drawinrect