4

我有一个有趣的问题UITextView。我使用此代码将文本视图放在loadView视图控制器的屏幕上:

self.textView = [[UITextView alloc] init];
if (self.tutorialPage.text.length > 0)
{
    self.textView.backgroundColor = [UIColor clearColor];
    self.textView.editable = NO;
    self.textView.text = self.tutorialPage.text;
    self.textView.showsVerticalScrollIndicator = NO;
    self.textView.textColor = [UIColor whiteColor];
    self.textView.textAlignment = NSTextAlignmentLeft;
    self.textView.translatesAutoresizingMaskIntoConstraints = NO;
    //Later constraints are added
}

UIFont *font = [UIFont fontWithName:@"Noteworthy-Bold" size:(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 20.0 : 15.0)];
self.textView.font = font;
[self.view addSubview:self.textView];

顺便说一句,这段代码的每一行都会被调用,并且文本视图肯定在屏幕上。但是不知何故,当再次调用相同的代码来创建另一个相同类型的视图控制器时,文本不会显示出来。但是,当我通过点击并按住在文本视图中选择文本时,文本突然出现。

更奇怪的是,当我改变这条线时

UIFont *font = [UIFont fontWithName:@"Noteworthy-Bold" size:(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 20.0 : 15.0)];

使用不同的字体名称,例如@"Noteworthy-Light", 或@"TimesNewRomanPS-BoldMT",文本视图的行为符合预期......这个问题的原因可能是什么?

有没有人见过这个问题?如果是这样,请分享您如何解决它或解决它。

4

2 回答 2

1

我有一个类似的问题。我通过首先设置 UIFont 然后设置 UIColour+NSTextAlignment 来解决它。简而言之,您必须设置:字体->颜色/其他属性。

于 2015-05-10T13:11:11.823 回答
0

如果您想让该文本字段成为第一响应者,而不是在 viewDidAppear 中而不是 viewWillAppear 中。你的问题会解决的。

于 2016-11-23T07:21:41.840 回答