我在 Storyboard 中创建了一个字体大小为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;

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

最佳答案

尝试在Interface Builder中选中此UITextView的“可选”复选框。在“属性”检查器中。根据以下@VahramDodoryan的评论,如果不想支持选择,则可以将selectable设置为false。

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

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

  • https://openradar.appspot.com/15854592
  • https://openradar.appspot.com/15196932
  • 关于ios - UITextView字体为nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19471467/

    10-08 22:26
    查看更多