UITextView字体为零

时间:2013-10-19 21:38:58

标签: ios objective-c fonts uitextview uifont

我在故事板中创建了一个字体大小为14的UITextView,并将其连接到我的ViewController的detailDescriptionLabel属性。此代码位于viewDidLoad:

self.detailDescriptionLabel.font=[UIFont systemFontOfSize:10];
NSLog(@"text is %@; font is %@", self.detailDescriptionLabel.text, self.detailDescriptionLabel.font);

控制台输出如下:

text is Lorem Ipsum; font is (null)

为什么字体设置为nil? setFont:正在工作;字体缩小了。我希望得到字体,所以在手势后我可以在字体上调用lineHeight。通过这种方式,我可以找到使用以下代码点击的行:

int line = [tap locationInView:tap.view].y / self.detailDescriptionLabel.font.lineHeight;

这里的字体也是零。 line设置为-2147483648,这显然不是我想要的。

3 个答案:

答案 0 :(得分:115)

尝试在Interface Builder中检查此UITextView的“可选”复选框。它位于Attributes Inspector中。根据下面的Per @ VahramDodoryan的评论,如果您不想支持选择,则可以将selectable设置为false。

我无法解释为什么会这样,但它可能是一个UIKit错误。我有IBOutletUITextView,其字体属性为nil,并且在 其text属性之后代码中的任何字体或文本颜色更改都没有响应组。我通过反复试验得出了这个解决方案。


如果您在iOS的最新版本中仍然遇到此问题,请考虑打开雷达:

答案 1 :(得分:0)

我尝试更改每个属性和约束,我在文本视图中。

包括如上所述的可选择

最后我沮丧地删除并重新添加了它,这是令人不满意的修复。

答案 2 :(得分:-1)

您应该尝试记录self.detailDescriptionLabel。该值可能为null。