我在故事板中创建了一个字体大小为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,这显然不是我想要的。
答案 0 :(得分:115)
尝试在Interface Builder中检查此UITextView
的“可选”复选框。它位于Attributes Inspector中。根据下面的Per @ VahramDodoryan的评论,如果您不想支持选择,则可以将selectable
设置为false。
我无法解释为什么会这样,但它可能是一个UIKit错误。我有IBOutlet
到UITextView
,其字体属性为nil,并且在 其text属性之后代码中的任何字体或文本颜色更改都没有响应组。我通过反复试验得出了这个解决方案。
如果您在iOS的最新版本中仍然遇到此问题,请考虑打开雷达:
答案 1 :(得分:0)
我尝试更改每个属性和约束,我在文本视图中。
包括如上所述的可选择
最后我沮丧地删除并重新添加了它,这是令人不满意的修复。
答案 2 :(得分:-1)
您应该尝试记录self.detailDescriptionLabel
。该值可能为null。